1

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

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

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

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

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

4

2 回答 2

3

新答案

“当我进行更改时”.. 一些更改(即更改 web.config)会导致应用程序重新启动(当然还有会话死亡)!
看这里

如果您正在运行进程内会话状态,那么显然每次应用程序池被回收时它都会被重置。

应用程序重新启动:
- 回收工作进程(以分钟为单位)
- 回收工作进程(在请求中)
- 在以下时间回收工作进程
- 最大虚拟内存
- 最大使用内存
- memoryLimit
- requestLimit
- 超时
-编辑和更新
- web.xml config
-- machine.config
-- global.asax
-- bin 目录或其子目录中的任何内容

“子目录问题的解决方法”,阅读它。


旧答案

即使它们未被捕获,错误也不会轻易杀死会话..

  • 也许您正面临与页面生命周期相关的问题(您应该能够在页面的 OnInit 事件中或之后访问会话)

  • 或者您在多会话元素上遇到问题(基于闪存的文件上传器可以打开不同的会话)

  • 或者您已经在多个服务器上安装了您的应用程序(每个服务器都有自己的会话!)

可能是其中之一?

于 2013-10-15T08:26:10.887 回答
0
I'm suspecting there is an un-caught error that is killing the Session

在 Visual Studio 中:

调试->异常... ->公共语言运行时异常->选中 2 个复选框。

这样,您将能够打破任何exception.

于 2013-10-15T08:22:02.473 回答