我知道会话超时的范围是1-9999,默认为(10或600?)。
我的web.config设置SessionState timeout="5"
我有一些Razor使用@Session.Timeout
Razor按预期评估5
,我可以在任何地方排除故障。
生产除外。如果我查看生产网站的HTML,Razor @Session.Timeout
所在的位置会显示9999
!!
Build-Server 上的Web.Config显示SessionState timeout="5"
,并且Web.Config被直接复制到自动构建中的prod位置(我不会有权访问。)
最后:代码中有一些零调用来改变HttpSessionState.Anything
。
可能是什么原因?
答案 0 :(得分:1)
要检查/尝试的一些事情:
检查ApplicationHost.config文件以查看是否在那里定义了会话超时。
如果您使用的是表单身份验证,请查看此部分,看看是否存在不合适的值:
<authentication mode="Forms">
<forms timeout="9999" ... />
</authentication>
global.asax中的Session_Start
有什么聪明的事吗?有些人喜欢在第一次开始时在这里玩游戏。