2011-01-25 60 views
2

有一個託管在IIS中的WCF服務,我想驗證配置設置是否有效,例如,日誌目錄存在或可以創建。如果配置失敗,我想考慮服務無效,並通過事件日誌等進行通知。理想情況下,如果服務無效,服務將不可用。啓動時驗證WCF服務

如果我作爲一個Windows服務託管,我可以輕鬆地做到這一點。但在IIS中託管?我不知道有什麼好的方法可以讓代碼無法使用該服務。

任何想法?如果有幫助,WCF服務將在其自己的應用程序池中運行。

TIA! James

回答

2

如果拋出異常,服務將不可用。因此,在您的服務的構造函數中執行您的檢查,並且如果一切都很完美,並且它沒有拋出異常並且服務不會在那裏。如果遠程錯誤關閉,則瀏覽到服務將顯示錯誤和堆棧跟蹤。

+0

它確實表現得那樣。仍試圖找出如何處理客戶端的情況 – 2011-01-27 17:54:11

0

已經在服務一個私有方法稱爲測試將返回布爾值false,如果任一loggigng目錄不存在或無法創建等。

呼叫從服務的構造這種測試方法。如果該方法返回false,則發送明確的信息表明該服務已關閉。

2

其他海報建議從服務的構造函數中拋出。這種方法可以正常工作,但更好的方法是實現一個自定義的ServiceHostFactory(http://msdn.microsoft.com/en-us/library/aa702697.aspx)並在CreateServiceHost方法中進行驗證。這樣做的好處是您的驗證錯誤將成爲「服務無法激活」錯誤報告&HTML頁面的一部分。