我觉得某些(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)进行通信的应用程序的东西)。
至于何时重新启动服务:
但是,除此之外,回收应用程序池通常足以恢复。
另请参见另一个类似的答案(是的,我的也是这样): 在尝试解决无响应/挂起/损坏的IIS网站时要采取哪些步骤?
HTH
通常,configuration更改需要启动/停止Web服务器。 Web服务器读取configuration文件并在启动时应用它们。 Web服务器在运行时不会dynamic读取configuration文件。