【问题标题】:Impacts of web.config and app.config changesweb.config 和 app.config 更改的影响
【发布时间】:2012-01-17 21:22:36
【问题描述】:

我有一个用 c#.net 编写的 Windows 服务。如果我需要更改 app.config 文件,我是否需要重新启动 Windows 服务应用程序以获取新的更改?

另外,如果我更改 web.config 连接字符串,应用程序池会自动启动吗?

谢谢。

【问题讨论】:

  • 它不是重新启动的应用程序池,而是特定 Web 应用程序的应用程序域。如果是应用程序池(这是一个 IIS 概念),在最坏的情况下,如果它们在同一个应用程序池中,它也可能影响 100 多个其他网站。

标签: c# asp.net windows-services


【解决方案1】:

第一个问题的答案是肯定的。除非您实施某种自动文件监视程序和域重启方案,否则需要重新读取服务或其他类型应用程序的 app.config 文件才能应用其中的更改。

至于第二个,是的,ASP.NET 会检测到 web.config 文件的更改并自动重新加载应用程序域。

【讨论】:

    【解决方案2】:

    是的,您需要重新启动服务才能进行更改。关于应用程序池,如果您更改了 web.config 上的任何内容以使其进行更改,它也需要重新启动。

    【讨论】:

    • 默认行为是针对 web.config 更改自动重新启动应用程序池。不过可以禁用此功能。
    • 而且,即使启用,有时也不会发生,具体取决于应用程序上的当前流量。
    • @BNL 它不是重新启动的应用程序池,而是特定 Web 应用程序的应用程序域。如果是应用程序池(这是一个 IIS 概念),在最坏的情况下,如果它们在同一个应用程序池中,它也可能影响 100 多个其他网站。
    • @PauliØsterø 感谢我的澄清,草率的术语。
    【解决方案3】:

    对 web.config 的更改总是会重新启动您的网络应用程序。它与被回收的应用程序池不同,但特定的应用程序域被卸载并再次加载。

    关于 app.config,您可以对其进行所有更改,它只是一个文件。是否需要重启应用取决于您的逻辑,如果您只是在启动期间或在正常程序执行期间读取 app-config。

    【讨论】:

      猜你喜欢
      • 2017-04-07
      • 2010-11-27
      • 2010-12-02
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多