【发布时间】:2011-08-23 03:16:34
【问题描述】:
我的网站 (ASP.Net 4.0 C#) 托管在具有多个实例的 Azure 服务器上。我的会话状态模式是“InProc”。不知何故,它不能在 Azure 实例上运行,它不能正确维护状态。请指教。
问候 维韦克
【问题讨论】:
我的网站 (ASP.Net 4.0 C#) 托管在具有多个实例的 Azure 服务器上。我的会话状态模式是“InProc”。不知何故,它不能在 Azure 实例上运行,它不能正确维护状态。请指教。
问候 维韦克
【问题讨论】:
【讨论】:
补充 Stuart 的答案:AppFabric 缓存是缓存即服务,与任何虚拟机实例无关。该服务于几周前上线。 AppFabric 团队提供了一个使用缓存的会话状态提供程序,只需要简单的 web.config 复制粘贴。
由于 Stuart 提到的原因,我不会依赖 SQL Azure 或表存储来为您的会话缓存。
Windows Azure Platform Training Kit 中有一个很好的动手实验室,名为 使用缓存服务构建 Windows Azure 应用程序 - 我会经历这个,因为其中一个主题是使用AppFabric 缓存。
我在this SO answer 中提供了更多信息。
【讨论】:
如果您有多个实例并且正在使用 InProc 会话,则 Session 数据将不起作用 - 因为它不会在实例之间共享。
Azure 负载平衡您的 HTTP 请求,并可能将每个客户端 HTTP 请求发送到不同的服务器实例。
如果要使用Session状态,那么需要使用共享的Session状态提供者,如:
【讨论】: