如何查明 ASP.NET Web 应用程序重新启动的原因
在我的网络应用程序中,由于某种原因,每次请求后都会调用 Application.End
并重新启动应用程序。当我在 Applicaion_End
中设置断点时,我没有得到有用的堆栈跟踪。此外,事件查看器中没有任何条目。根据 MSDN,以下情况可能会导致应用程序重新启动:
- 从应用程序的 Bin 中添加、修改或删除程序集 文件夹。
- 添加、修改或删除本地化资源 App_GlobalResources 或 App_LocalResources 文件夹。
- 添加、修改或删除应用程序的 Global.asax 文件。
- 添加、修改或删除App_Code中的源代码文件 目录。
- 添加、修改或删除配置文件配置。
- 添加、修改或删除 Web 服务引用 App_WebReferences 目录。
- 添加、修改或删除应用程序的 Web.config 文件。
我猜我的代码更改了一些文件,从而触发应用程序重新启动。有什么方法可以找出到底是什么原因导致应用程序重新启动?
编辑:我现在通过逐步执行代码并观察资源管理器中的时间戳解决了我的问题。在应用程序启动时,我正在从访问数据库中读取一个值,这会导致创建和删除 .ldb 文件。然而,这个问题尚未得到解答。是否有任何日志记录导致应用程序重新启动的此类事件?
In my web application Application.End
is called after every request for some reason and the application is restarted. When I set a breakpoint in Applicaion_End
I don't get a useful stack trace. Furthermore, there are no entries in Event Viewer. According to MSDN, the following could cause an application restart:
- Adding, modifying, or deleting assemblies from the application's Bin
folder.- Adding, modifying, or deleting localization resources from the
App_GlobalResources or App_LocalResources folders.- Adding, modifying, or deleting the application's Global.asax file.
- Adding, modifying, or deleting source code files in the App_Code
directory.- Adding, modifying, or deleting Profile configuration.
- Adding, modifying, or deleting Web service references in the
App_WebReferences directory.- Adding, modifying, or deleting the application's Web.config file.
I guess that my code changes some file which triggers an application restart. Is there any way to find out what exactly causes the application restarts?
Edit: I solved my problem now by stepping through the code and watching the timestamps in Explorer. On application startup I'm reading a value from an access database which causes a .ldb file to be created and deleted. However, this question has not been answered yet. Is there any log that keeps record of such events that cause the application to be restarted?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Tess Ferrandez 写了一篇很好的 关于如何确定应用程序域回收原因的博客文章。关于如何记录重启事件,Tess 有这样的说法:
要打开 IIS6 的日志记录,您可以使用
:对于 IIS7,您可以从 IIS 管理器 - 应用程序池 - 高级设置中控制它。
Tess Ferrandez wrote a good blog post on how to determine the reason for App Domain recycling. Tess has this to say on how to log the restart event:
To turn on logging for IIS6 you can use:
For IIS7 you can control it from the IIS manager - Application pools - Advanced Settings.