我有一个.NET 4.5网站,其中我的会话偶尔会消失(由于我的登录设置,强制重新登录)。
我怀疑有一个未捕获的错误正在杀死会话,但允许执行以其他方式继续。
我的web.config包含以下vanilla-variety sessionState元素...
<configuration>
<system.web>
<sessionState timeout="60" />
</system.web>
</configuration>
如果应用程序没有可见的错误消息或其他不良行为,我怎样才能最好地确定导致会话转储的原因?
答案 0 :(得分:3)
新答案
“因为我正在进行更改”..一些更改(即更改为web.config)导致应用程序重新启动(当然会话会话死亡)!
Look here
如果你正在运行进程内会话状态,那么显然它会继续 每次应用程序池都被回收时重置。
应用程序重新启动:
- 回收工人流程(以分钟为单位)
- 回收工人流程(在请求中)
- 在以下时间回收工作人员进程
- 最大虚拟内存
- 最大使用内存
- memoryLimit
- requestLimit
- 超时
- 编辑和更新
- web.config
- machine.config
- global.asax
- bin目录中的任何内容或其子目录
“子目录问题的解决方法”,阅读它。
老答案
错误不会轻易杀死会话,即使它们未被捕获..
也许您正面临与页面生命周期相关的问题(您应该能够在Page的OnInit事件中或之后访问会话)
或者您在多会话元素上遇到问题(基于Flash的文件上传器可以打开不同的会话)
或者您已在多个服务器上安装了您的应用程序(每个服务器都有自己的会话!)
可能是其中之一吗?
答案 1 :(得分:0)
I'm suspecting there is an un-caught error that is killing the Session
在Visual Studio中:
调试 - &gt; 例外... - &gt; 公共语言运行时例外 - &gt; 选中2个复选框。
这样,您就可以打破任何exception
。