【问题标题】:ApplicationShutdownReason.BuildManagerChange and ApplicationPool restart in IISExpressIISExpress 中的 ApplicationShutdownReason.BuildManagerChange 和 ApplicationPool 重启
【发布时间】:2013-04-02 12:13:04
【问题描述】:

我们有问题。我们将 IISExpress 8.0 用于 Asp.net WebForm 应用程序(.net 4.0)。 计算机在 Windows 7 x64 下运行。

有时 ApplicationPool 会无故重启。我知道它会在 15 次 aspx\ascx 文件更改后重新启动。但在这种情况下,它会在没有任何更改的情况下重新启动。 在 ApplicationEnd 我们找到了重新启动的原因。它是 ApplicationShutdownReason.BuildManagerChange

在 Internet 中搜索不会提供任何有用的详细信息。大多数情况下都建议使用 IIS 而不是 IISExpress。

你知道这可能是什么原因吗?

更新

深入研究 .Net 4 源代码给出了这次关闭的两个原因。 当有人从 Temporary Asp.net 文件夹更改 hash.web 文件时,会触发其中之一。例如 - “c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\app\a83dcad1\be4aa699\hash\hash.web”

第二个原因是 BuildManager 构建了一些对象并将 BuildResult 缓存在 HttpCache 中。然后,如果它已过期,它会检查此 BuildResult 在缓存过期时是否需要 ShutdownAppDomainOnChange。如果需要,它会触发 BuildManagerChange 关闭。

更新2

在我们的例子中,重启是由 hash.web 更改引起的。似乎 IISExpress 在没有任何源代码更改的情况下更新它,但为什么呢?

更新3 微软有一个问题 - https://connect.microsoft.com/VisualStudio/feedback/details/783440/microsoft-visualstudio-web-host-exe-touches-hash-web-and-should-not-be-running 他们说他们在 Visual Studio 2012 Update 2 中修复了它。

【问题讨论】:

  • 如果您使用的是 Windows 7,为什么不使用成熟的 IIS?
  • 因为在 IIS 上配置几个 web 项目并不容易。我们可以做到,但是我们需要为每个开发人员做同样的事情。因此,使用 IISExpress 的方法更容易,因为它由一个配置并由所有其他人使用。
  • 根据我的经验,IIS Express 很糟糕。您提到的配置是所有开发人员都必须做的事情——没有变通办法。从长远来看,这个成本比 IisExpress 怪异的成本要小得多。
  • 感谢您分享您的想法。如果我们没有找到任何可以帮助我们的东西,那么是的,我们将切换到完整的 IIS。

标签: asp.net .net iis-7 visual-studio-2012 iis-express


【解决方案1】:

这不是一个完整的答案,所以你可以从中获得任何好处。

似乎发生了两件事:hash.web 更改可能是因为 IIS 使用临时位置来存储您构建的应用程序 DLL。当这个文件发生变化时,IIS 知道你构建了一个新版本的应用程序,需要重新启动它;这可以解释应用程序池重置。

对于缓存过期,似乎 IIS 正在尝试在不同的应用程序域中卸载和重新加载某些内容。一旦加载了应用程序域(我认为),就无法(在 .NET 中)卸载程序集,因此这是实现此目的的“常用”方法。

也许吧。

【讨论】:

  • 是的。实际上从 .Net 4.0 开始,有一种卸载程序集的方法,但它有一些优势。我正在尝试使用 Process Monitor 捕获 IISExpress,以验证他是否更改了此文件。我发现一篇有类似问题的文章,Antivirus 检查了这个文件并触发了重启。所以,我正在调查这个变化的发起者
猜你喜欢
  • 1970-01-01
  • 2018-01-07
  • 2017-11-07
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
相关资源
最近更新 更多