2009-12-16 71 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设置依赖关系的答案更好。