2009-12-16 69 views
1

我有一個WCF服務作爲Windows服務託管。 WCF服務在同一臺服務器上使用msmq隊列。Windows服務啓動順序導致WCF服務中出現故障狀態

當服務器重新啓動時,我的WCF服務在msmq服務之前啓動。這使我的WCF服務處於故障狀態。

處理這個問題的最佳方法是什麼?我應該建立一個依賴於msmq服務?有沒有辦法從wcf服務處理這個問題?

回答

0

您可以在設計時在NamedServiceInstaller類中執行此操作,爲您希望在之前啓動的每個服務在ServicesDependedOn屬性中添加一個帶有服務名稱的字符串。

1
ServiceInstaller serviceInstaller = new ServiceInstaller(); 


// Adding this property to your ServiceInstaller forces 
// your service to start after MSMQ. 

serviceInstaller.ServicesDependedOn = new string[] { "MSMQ" }; 
0

如果您在windows server 2008上將服務啓動類型設置爲自動(延遲啓動)可能是另一種選擇。這將在您的WCF託管服務之前啓動MSMQ服務。
但我認爲Shiraj設置依賴關係的答案更好。