Iis

哪些配置更改需要重新啟動 Web 服務?

  • July 14, 2011

我的印像是某些(Web 伺服器)配置更改需要循環服務。

  • 是否有關於哪些特定更改需要重新啟動服務的經驗法則,或者這只是一種好的做法?伺服器是否總是告訴你何時需要翻轉服務?
  • 當您重新啟動需要首先重新啟動服務的服務時,實際發生了什麼變化?

我專門指的是 IIS,但我很想知道其他 Web 伺服器是否有相同的要求。

從 IIS 7 開始,我能想到的很少/沒有。WAS 不載入可選組件,它只是做它的事情。

IIS 6 在 InetInfo.exe 中託管來自/用於/在 Metabase 中的其配置的記憶體副本。如果這被卡住了,一切都會失敗(通常是一次),這需要重新啟動服務(如果可能的話,IISRESET /NOFORCE)。

99% 的情況下,回收應用程序池以恢復服務,或者讓特別頑固的應用程序重新讀取其配置(如果它的句柄洩漏出文件更改通知的方式,或者它厭倦了生活,或者只是絞刑)。IIS 6+ 的工作程序隔離(模式)意味著大多數故障被限制在單個程序中,並且通常會進行回收,在下一個請求時啟動一個新的工作程序。

與任何事情一樣,也有例外,但作為“純”網路應用程序的經驗法則,這就是您需要做的一切。

COM 應用程序、使用 Web 伺服器程序本身之外的狀態的應用程序等可能會更麻煩,並且某些應用程序不支持自身的多個實例(一個關閉掛起一個啟動),在這種情況下你重新有點塞滿,但總的來說……有效。

IIS7 不託管任何內容的記憶體副本,所涉及的程序知道如何直接讀取配置文件。

WAS(Windows 程序啟動服務)讀取配置文件,將它們劃分為應用程序池(請參閱:Inetpub\Temp\AppPools)並讓工作程序讀取它們自己的配置。我還沒有看到很多情況會破壞到需要重新啟動的程度。

與 IIS <=6 不同,InetInfo 不需要存在於 IIS 7 中以用於工作伺服器 - 它純粹是為了與需要與元數據庫模擬器(Admin Base Objects、ADSI、legacy IIS 6 WMI)對話的應用程序兼容的東西)。

至於何時重啟服務:

  • 非常稀有
  • 當 WAS 記錄讀起來像是不想存在的錯誤時
  • 當所有東西都一次性堆積起來時(並且無法辨識單個應用程序池以進行回收)

但除此之外,只要回收 App Pool 通常就足以恢復。

另請參閱類似的另一個答案(是的,我的也是): 嘗試解決無響應/掛起/損壞的 IIS 網站時要採取哪些步驟?

高溫高壓

引用自:https://serverfault.com/questions/289479