我正在对 ASP.NET 应用程序中的重新启动进行故障排除。该应用程序每天重新启动大约 20 次。我正在使用 log4net 库进行日志记录。根据这个问题的建议,我让应用程序从Global.asax 的事件HostingEnviornment.ShowdownReason
内部记录关闭的原因。Application_End()
我还会在事件中记录应用程序启动的Application_Start()
时间。
运行日志几天后,我发现当实际记录关闭时,重新启动的原因总是HostingEnvironment
. 但并不总是记录关机。我知道这是因为我可以看到Application_Start()
没有相应事件的日志Application_End()
事件。
什么会导致托管环境重新启动我的应用程序?有没有办法获得有关它决定触发重启的原因的更具体信息?关闭事件并不总是被记录的事实是否说明了可能导致重新启动的原因?
更新
我仍在为此苦苦挣扎。来自网络的链接似乎表明 必须使用 WinDbg/SOS.dll/ADPlus.vbs 来追踪此问题的原因。但是在学习如何使用这些工具和弄清楚如何正确解释结果之间,似乎伴随着非常陡峭的学习曲线。我仍然希望有一些东西可以帮助我追踪重新启动的原因,而无需使用反汇编 CLR 代码。有没有人有任何其他工具或技巧可以帮助我解决这个问题?