如何捕获破坏.NET会话的错误?

时间:2013-10-15 08:18:01

标签: asp.net session

我有一个.NET 4.5网站,其中我的会话偶尔会消失(由于我的登录设置,强制重新登录)。

我怀疑有一个未捕获的错误正在杀死会话,但允许执行以其他方式继续。

我的web.config包含以下vanilla-variety sessionState元素...

<configuration>
  <system.web>
    <sessionState timeout="60" />
  </system.web>
</configuration>

如果应用程序没有可见的错误消息或其他不良行为,我怎样才能最好地确定导致会话转储的原因?

2 个答案:

答案 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