我们正在尝试将托管在 Go Daddy 上的 Web 应用迁移到 Azure。阅读以下内容后,我担心 Azure 中无法使用某些功能这发布有关迁移到 Windows Azure 的 7 大关注事项的帖子。
跨域 cookie 能起作用吗?
我们有一个带有子域名的网站。
example.com -- 主域名
sub.example.com——子域名
这就是我们使用 cookie 的方式。
在主域中设置 cookie。
HttpCookie myCookie = new HttpCookie("SiteUser");
myCookie.Domain = ".example.com";
myCookie["CustType"] = "Full";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
读取子域中的 cookie。
if (Request.Cookies["SiteUser"] != null)
{
HttpCookie item = Request.Cookies["SiteUser"];
}
会话状态
这就是我们在当前应用程序中使用会话状态的方式
Session["FirstName"] = "John";
-- 这可以在 Azure 中使用吗?
似乎Azure 中的会话我们必须使用发布的 Redis 缓存服务这里
我想知道 asp.net 的哪些基本功能(例如会话、cookie 等)在 azure 中无法使用,以及解决方案。
任何帮助都将非常有帮助。
答案1
与会话相关的唯一事物是 Azure VM 的无状态特性。
这意味着你可能会失去一种更流行的存储会话状态的方法。
从您链接的文章:
最常用的提供程序是进程内内存提供程序,它将状态存储在其运行的 Web 服务器的内存中。它依赖于为“粘性会话”配置的负载平衡器。由于 Windows Azure 负载平衡器是非粘性的,因此您不能使用此提供程序。
然而,这与 cookie 基本无关。
有关 cookie 和会话状态之间差异的更多信息,请参阅那里有非常好的资源。
曲奇饼应用于存储当前 Web 会话的每个用户信息或持久信息在客户端上,因此客户端可以控制 cookie 的内容。
会议用于存储当前 Web 会话的每个用户信息在服务器上.支持使用数据库服务器作为后端存储。
Cookies 在云提供商上可以很好地发挥作用。