答案 0 :(得分:2)
在调试模式下运行?每15次动态重新编译,AppDomain就会被回收。当文件也发生变化时它会循环使用,例如web.config
。当应用程序站点内的非应用程序文件和文件夹发生更改时,它甚至会进行循环因此,请测试在发布模式下是否仍然会发生这种情况。
顺便提一下,您可以更改强制重置AppDomain的动态重新编译的数量:在web.config
中将其设置为:
<compilation numRecompilesBeforeAppRestart="15" />
提示:在调试时不要使用InProc会话 - 而是使用StateServer或SQL State(我的首选项)。
有关详细信息,请参阅this blog post。
答案 1 :(得分:1)
首先要研究的是事件查看器。在那里,您可以找到工作进程中抛出的任何未处理的异常。
答案 2 :(得分:0)
由于某种原因,您的网站可能正在回收。您必须检查代码的作用。我建议检查您的代码中的网站结构是否未被更改(创建/删除目录)---这会导致应用程序域回收。
答案 3 :(得分:0)
Application_End中没有会话状态。就这么简单。 Application_End是一个在其他所有东西早已消失后触发的事件。事件日志条目很好地描述了这一点。