我想在IIS 7中託管一個WCF服務。我不熟悉這個主題,但是一位同事確保我在一段時間(「天」)後會關閉託管服務,無論如何。IIS是否關閉託管服務?我怎樣才能防止呢?
IIS何時會自動關閉我的服務?如何設置它,使它們始終保持運行狀態(即使它們沒有做任何實際的工作)?
我想在IIS 7中託管一個WCF服務。我不熟悉這個主題,但是一位同事確保我在一段時間(「天」)後會關閉託管服務,無論如何。IIS是否關閉託管服務?我怎樣才能防止呢?
IIS何時會自動關閉我的服務?如何設置它,使它們始終保持運行狀態(即使它們沒有做任何實際的工作)?
IIS中的web服務作爲擁有應用程序池的應用程序託管。通常這些池被設置爲定期回收自己 - 就像這樣你的服務將被重新啓動。
在應用程序池設置(inetmgr-console內)中,可以停用這些回收(在「高級設置」 - >「回收配置」下)。
關於故障恢復,還有可能在這些設置中對它們進行配置,但我不確定它們是否真的做到了您希望它們做的事情。
最後,我建議你只是將IIS服務器之外的主機應用程序託管爲系統服務,然後可以配置爲自動重新啓動並創建日誌條目。通常,WCF服務的設計時間不會長於請求所需的時間。在我們的其中一個項目中,我們在確認IIS出現問題後正是這樣做的,它使我們的工作變得更容易...
IIS可隨時卸載服務的AppDomain以節省內存。
如果服務的端點上有請求,IIS將重新加載服務,並且請求將被正常處理。
就服務而言,這與服務器重新啓動沒有區別。
這隻會是一個問題,如果您的服務需要運行(不只是聽),以執行某種類型的後臺處理。
如果是這樣,你應該寫一個正常的Windows服務,而不是使用IIS。
爲什麼?你想做什麼? – SLaks 2010-07-30 09:55:08
我正在努力應對一個讓我滿足奇怪要求的癱瘓架構。 – mafu 2010-07-30 10:05:40
你應該創建一個普通的服務。 – SLaks 2010-07-30 10:24:11