如何发现ASP.NET应用程序重启的原因

时间:2009-05-06 12:45:44

标签: asp.net

有没有办法监视(日志)重启ASP.NET应用程序的原因?

我们现在遇到了相当复杂的网站问题。它在文件上传期间重新启动。不是每个文件,而是每5到10日肯定。我们使用自定义VirtualPathProvider,因此这可能是一个原因。我们还有一个后台工作线程,这也可能是一个原因。只知道原因会很棒。

在XP(IIS 5.1)和Windows Server 2003(IIS 6)上出现问题。

解决:

谢谢你们,我们已经成功抓住了它。它是由达到的最大重新编译引起的。很可能问题出在我们的VirtualPathProvider中,但这是完全不同的问题。

方法摘要:

  1. HackGu在ScottGu的博客中表现得非常完美。
  2. 通过machine.config监控也很棒,但我更喜欢将其登录到我们的日志中。
  3. 事实证明,最简单的解决方案是在我的 Application_End 方法中检查 HostingEnvironment.ShutdownReason 属性。

5 个答案:

答案 0 :(得分:6)

在应用程序文件夹中添加或删除文件夹将导致应用程序池回收(在您的情况下最可能的原因)以及许多其他内容。这是一篇有趣的文章:

http://blogs.msdn.com/johan/archive/2007/05/16/common-reasons-why-your-application-pool-may-unexpectedly-recycle.aspx

在同一个网站上有关于如何监控重启的一些好的提示,这正是你实际要求的。选项包括web.config和EventViewer或性能监视器。

http://blogs.msdn.com/johan/archive/2008/02/18/monitoring-application-pool-and-application-restarts.aspx

答案 1 :(得分:6)

您是否查看了“Logging ASP.NET Application Shutdown Events ”中的日志记录建议?这将是我建议获得有关正在发生的事情的更多信息的方法。

答案 2 :(得分:2)

Tess Ferrandez,ASP.NET Escalation Engineer有一个很好的博客,提供了各种用于调试ASP.NET应用程序的技巧和窍门。

您特别感兴趣的帖子是:

她将指导您完成解决问题的步骤以及如何解决问题。

需要注意的另一件事是反病毒软件扫描网站根目录下的文件 - 这可能会更改文件的修改日期,并导致应用程序回收。

答案 3 :(得分:1)

看看微软模式和文章中的这篇文章。实践开发人员中心:

Production Debugging for .NET Framework Applications

另请参阅Jeff Atwood撰写的此博客文章:

Debugging ASPNET_WP in Production

答案 4 :(得分:0)

正如其他人所说,请勾选HostingEnvironment.ShutdownReason。如果值为BinDirChangeOrDirectoryRename,则说明某个进程正在更改应用程序文件夹中的某些文件(创建,删除,更改属性)。

如果找不到谁在为此发声,请使用Process Monitor中的SysInternals。就我而言,是防病毒过程将文件CreationTime(设置为以前的CreationTime!)设置了。