1

在我触发更新或删除过程的按钮后,我的应用程序中的Application_End() 事件被触发,而我的代码没有对该事件进行任何调用。这会导致所有会话被破坏,并在用户每次更新/删除某些内容时将用户重定向到登录页面。我认为这是由于一些异常终止并重新启动应用程序而没有任何警告或错误。请建议。事先感谢

4

4 回答 4

2

在调试模式下运行?AppDomain 每 15 次动态重新编译就被回收一次。当文件也发生变化时,它会回收,例如web.config. 当应用程序站点内的非应用程序文件和文件夹发生更改时,它甚至会回收。所以测试看看这是否仍然在发布模式下发生。

顺便说一句,您可以更改强制 AppDomain 重置的动态重新编译的数量:在web.config此处设置它:

<compilation numRecompilesBeforeAppRestart="15" />

提示:调试时不要使用 InProc 会话 - 改用 StateServer 或 SQL State(我的偏好)。

有关更多信息,请参阅此博客文章

于 2011-07-20T10:29:22.727 回答
1

首先要研究的是事件查看器。在那里,您可以找到工作进程中抛出的任何未处理的异常。

于 2011-07-20T09:20:36.060 回答
0

您的网站可能出于某种原因正在回收。您将不得不检查代码的作用。我建议检查您的代码中是否没有更改站点结构(创建/删除目录)——这会导致应用程序域回收。

于 2011-07-20T10:30:41.507 回答
0

会话状态在 Application_End 中不可用。就是这么简单。Application_End 是一个在其他一切都早已消失后触发的事件。事件日志条目很好地描述了这一点。

于 2011-07-22T00:54:19.130 回答