我需要你的帮助来解决我的应用程序中存在于Azure平台上的会话超时的一个问题。
我在asp.net中开发了web应用程序并使用session创建了登录功能,并将以下代码维护为会话的超时期限,如
<sessionState mode="InProc" timeout="20"></sessionState>
它在本地系统上运行良好但是当我在Azure平台上使用实时URL进行测试时,它会经常注销(会话已过期)。
任何人都可以建议我如何解决这个问题?
由于 阿伦。
答案 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以获取更多信息。