【问题标题】:Does a change in web.appsettings.config triggers an Application Pool recycle?web.appsettings.config 中的更改是否会触发应用程序池回收?
【发布时间】:2015-01-26 21:29:51
【问题描述】:

我有一个带有 Web.appSettings.config 的 ASP.NET 应用程序。 正是在 web.config 中,我已经包含了这一行:

<appSettings configSource="Web.appSettings.config" />

在 web.appSettings.config 中

<?xml version="1.0"?>
<appSettings>
  <add key="foo" value="foo value" />
</appSettings>

我自己测试过。如果我更改 web.config 的某些内容,IIS 应用程序池会回收。但似乎如果我在 web.appSettings.config 中更改某些内容,它不会回收。

web.appSettings.config 中的更改...应该触发应用程序池回收吗?

是否有任何官方的微软链接可以澄清它?

澄清:我的测试表明 web.appSettings.config 中的更改表明没有触发应用程序池回收。我的怀疑是关于预期的行为。 应用程序池不回收是正常的还是我的 IIS 有问题..?

【问题讨论】:

  • afaik 仅更改 web.config 文件触发应用程序池回收(此行为可以更改)。相关文件的更改(通过 configSource 定义)不会触发回收。
  • 我的测试似乎表明相同,但我没有在 MSDN 或类似网站上找到任何链接来确认它,所以我不是 100% 确定
  • 在该链接中解释说 web.config 中的更改会触发回收,但没有说明更改 web.appsettings.config(或类似内容)是否应该触发或不回收......
  • 它列出了所有会导致回收的事情。它也没有提到在满月期间是否会发生回收,并不意味着你的 IIS 坏了:)

标签: c# asp.net iis-7 application-pool


【解决方案1】:

不,它没有。

但我不会依赖这里的答案,而是自己测试一下。

例如;当应用程序池回收时,这意味着您的应用程序将重新启动。在 global.asax 中的 Application_Start 事件中放置一个断点。更新 web.config,向您的页面发出请求,看看它是否命中。然后更新 web.appsettings.config 文件并尝试相同的操作。在第二种情况下,断点不应该命中。

您也可以通过记录事件(或者可能检查现有的 IIS 日志等)来理解它。

【讨论】:

  • 我自己测试了它(编辑问题以使其更清楚)。我确定在我的情况下它不会回收应用程序池。我不确定这是预期的行为还是我的 IIS 有问题...
  • 是的,现在怀疑更加清晰易懂了。就我而言,我之前遇到过同样的情况,并且必须确定它是否导致了重置,而事实并非如此 - 所以,我们可以说这是一种预期的行为(当然,除非我们的两个 IIS 都坏了:o)
  • 两个 IIS 都不太可能发生故障。谢谢
【解决方案2】:

Web.config 中的更改会触发 AppDomain 回收,而不是 AppPool 回收。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-25
    • 2015-02-26
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2023-03-26
    • 2015-01-07
    相关资源
    最近更新 更多