窗口Azure平台上的Web应用程序中的会话超时

时间:2011-09-07 05:33:03

标签: asp.net azure

我需要你的帮助来解决我的应用程序中存在于Azure平台上的会话超时的一个问题。

我在asp.net中开发了web应用程序并使用session创建了登录功能,并将以下代码维护为会话的超时期限,如

<sessionState mode="InProc" timeout="20"></sessionState>

它在本地系统上运行良好但是当我在Azure平台上使用实时URL进行测试时,它会经常注销(会话已过期)。

任何人都可以建议我如何解决这个问题?

由于 阿伦。

2 个答案:

答案 0 :(得分:4)

您是否正在运行多个WebRole实例?请记住,“InProc”会话状态不会在多个Web角色实例之间共享。实际上,InProc会话状态在云世界中是“邪恶的”,对于运行多于1个实例的任何部署都不起作用。您真的想使用其他提供程序,例如AppFabric Cache的会话提供程序

答案 1 :(得分:1)

您确定会话即将到期吗?如果您使用的是ASP.NET表单身份验证,则需要考虑另一个超时(此处我将其设置为180分钟)

<authentication mode="Forms">
  <forms loginUrl="Login/" timeout="180"/>
</authentication>

如果你确实有多个Igorek实例 - 会话将不会被共享。

请参阅how-does-microsoft-azure-handle-session-state/1023125#1023125 或者参考Azure SDK以获取更多信息。