有没有办法监视(日志)重启ASP.NET应用程序的原因?
我们现在遇到了相当复杂的网站问题。它在文件上传期间重新启动。不是每个文件,而是每5到10日肯定。我们使用自定义VirtualPathProvider,因此这可能是一个原因。我们还有一个后台工作线程,这也可能是一个原因。只知道原因会很棒。
在XP(IIS 5.1)和Windows Server 2003(IIS 6)上出现问题。
解决:
谢谢你们,我们已经成功抓住了它。它是由达到的最大重新编译引起的。很可能问题出在我们的VirtualPathProvider中,但这是完全不同的问题。
方法摘要:
答案 0 :(得分:6)
在应用程序文件夹中添加或删除文件夹将导致应用程序池回收(在您的情况下最可能的原因)以及许多其他内容。这是一篇有趣的文章:
在同一个网站上有关于如何监控重启的一些好的提示,这正是你实际要求的。选项包括web.config和EventViewer或性能监视器。
答案 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撰写的此博客文章:
答案 4 :(得分:0)
正如其他人所说,请勾选HostingEnvironment.ShutdownReason
。如果值为BinDirChangeOrDirectoryRename
,则说明某个进程正在更改应用程序文件夹中的某些文件(创建,删除,更改属性)。
如果找不到谁在为此发声,请使用Process Monitor中的SysInternals。就我而言,是防病毒过程将文件CreationTime(设置为以前的CreationTime!)设置了。