2015-03-27 3 views
1
.

. Службы прекращаются из-за того, что MSMQ не запускается в то время, когда они пытаются запустить, поэтому очевидным решением было бы установить автоматический тип запуска (задерживается). Вместо того, чтобы идти с очевидным решением, мне интересно, есть ли что-то, что я делаю неправильно?«Служба очереди сообщений недоступна», когда служба автоматически запускается после перезагрузки.

Я использую NServiceBus V5 на Win2012 и начал получать эти сообщения на всех моих установленных сервисах после того, как я обновил V5 с V4. Они устанавливаются для автоматического запуска при загрузке сервера. Раньше этого не было, и службы запускаются обычно, если я вручную их запускаю.

+0

Убедитесь, что они зависят от службы MSMQ? –

+0

@ AndreasÖhlund Они не зависят от MSMQ. Я использую nservicebus.host.exe и устанавливаю с помощью базовых коммутаторов, таких как servicename. Просматривая документацию, похоже, что я могу добавить зависимость через коммутатор. но я не уверен, что я должен подключить к значению, чтобы он зависел от msmq, но похоже, что это должно быть решение. Не могли бы вы отправить ответ с подробностями? –

ответ

1

Предполагая, что NServicebus работает в NServiceBus.Host.exe, чтобы запустить службу после MSMQ, есть переключатель, который необходимо использовать при установке службы (я использовал одну строку, разбил ее на несколько строк для удобства чтения):

.\NServiceBus.Host.exe /install 
/servicename:"service" 
/displayname:"display" 
/dependsOn:"MSMQ" 

Я попытался «Сообщение создания очередей», так это то, что было в менеджере управления службами, но я предполагаю, что это не займет имя дисплея. Я обнаружил, что MSMQ было именем службы, щелкнув правой кнопкой мыши на службе и просмотрев поле имени службы вверху.

2

Я не думаю, что вы делаете что-то не так - я думаю, это то, что вы подозреваете: ваша служба запускается до того, как служба очереди сообщений готова.

+1

@ ton.yeung Также может быть полезно установить зависимость службы между службой инфраструктуры сообщений и вашим сервисом. –

0

Вы можете установить сервисные зависимости без переустановки.

использовать следующую команду: СБН конфигурации YOURSERVICENAME зависит = MSMQ