哪些configuration更改需要重新启动Web服务?

我觉得某些(Web服务器)configuration更改要求循环服务。

  • 有什么具体的变化需要重新启动服务的经验法则,还是只是一个良好的做法? 当服务需要翻转时,服务器是否总是告诉你?
  • 当您重新启动要求服务重新启动的服务时,实际发生了什么变化?

我具体指IIS,但我有兴趣知道其他Web服务器是否有相同的要求。

从IIS 7开始,很less/没有我能想到的。 WAS不加载可选组件,它只是做它的事情。

IIS 6在InetInfo.exe中托pipe元数据库中/ for /的configuration的内存中副本。 如果堵塞了,一切都会失败(通常是一次),并且需要重新启动服务(如果可能的话,IISRESET / NOFORCE)。

99%的时间,这足以回收应用程序池来恢复服务,或者让一个特别顽固的应用程序重新读取它的configuration(如果它处理 – 泄漏出文件更改通知的方式,或者对生活感到厌倦,或者只是挂)。 IIS 6 +的工作进程隔离(模式)意味着大多数故障都被限制在一个进程中,并且一个回收通常会工作,在下一个请求时启动一个新的工作进程。

与任何情况一样,也有例外,但作为“纯粹”networking应用程序的经验法则,您只需要这么做。

COM应用程序,在Web服务器进程之外使用状态的应用程序等等,可能会更麻烦,有些应用程序将不支持自己的多个实例(一个closures会挂起启动的实例),在这种情况下,重新有点塞,但总体来说…工作。

IIS7不托pipe任何东西的内存副本,并且涉及的进程知道如何直接读取configuration文件。

WAS(Windows进程激活服务)读取configuration文件,将其分割为App池(请参阅:Inetpub \ Temp \ AppPools),并让工作进程读取自己的configuration。 我还没有看到很多情况下,这已经足够了,需要重新启动。

与IIS <= 6不同,InetInfo不需要存在于IIS 7中,而是与IIS <= 6不同,它纯粹是为了兼容需要与元数据库模拟器(Admin Base Objects,ADSI,传统IIS 6 WMI)进行通信的应用程序的东西)。

至于何时重新启动服务:

  • 非常稀有
  • 当WASlogging那些不想活的读取错误
  • 当一切都一下子堆起来的时候(个别应用程序池无法被识别回收

但是,除此之外,回收应用程序池通常足以恢复。

另请参见另一个类似的答案(是的,我的也是这样): 在尝试解决无响应/挂起/损坏的IIS网站时要采取哪些步骤?

HTH

通常,configuration更改需要启动/停止Web服务器。 Web服务器读取configuration文件并在启动时应用它们。 Web服务器在运行时不会dynamic读取configuration文件。