Порядок запуска службы Windows вызывает ошибочное состояние в службе WCF - PullRequest
1 голос
/ 16 декабря 2009

У меня есть служба WCF, размещенная как служба Windows. Служба WCF использует очередь msmq на том же сервере.

Когда сервер перезапускается, моя служба WCF запускается до службы msmq. Это переводит мою службу WCF в сбойное состояние.

Каков наилучший способ справиться с этим? Должен ли я установить зависимость от службы msmq? Есть ли способ справиться с этим из службы wcf?

Ответы [ 4 ]

4 голосов
/ 16 декабря 2009

Вы можете указать порядок запуска, используя зависимость serivce. Это означает, что служба WCF не должна запускаться до службы MSMQ Смотри: https://serverfault.com/questions/84181/can-the-startup-order-for-windows-services-be-configured-if-so-where

1 голос
/ 16 декабря 2009
ServiceInstaller serviceInstaller = new ServiceInstaller();


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

serviceInstaller.ServicesDependedOn = new string[] { "MSMQ" };
0 голосов
/ 16 декабря 2009

Если вы работаете на Windows Server 2008, можно выбрать другой тип запуска службы: автоматический (отложенный запуск). Это запустит службу MSMQ до вашего хостинга WCF.
Но я думаю, что ответ Шираджа на установку зависимостей лучше.

0 голосов
/ 16 декабря 2009

Вы можете сделать это в своем классе NamedServiceInstaller во время разработки, добавив строку с именем службы в свойстве ServicesDependedOn для каждой службы, которую вы хотите запустить раньше.

...