"Message Queue service is not available" 当服务在重启后自动启动时

"Message Queue service is not available" when service automatically starts after reboot

服务因 MSMQ 在尝试启动时未启动而终止,因此显而易见的解决方案是将启动类型设置为自动(延迟)。我想知道我是否做错了什么,而不是采用明显的解决方案?

我在 Win2012 上使用 NServiceBus V5,在我从 V4 升级到 V5 后开始在我安装的所有服务上收到这些消息。它们被安装为在服务器启动时自动启动。这种情况以前没有发生过,如果我手动启动它们,服务会正常启动。

我认为您没有做错任何事情--我认为这是您所怀疑的:您的服务在消息队列服务准备就绪之前启动。

假设NServiceBus.Host.exe中的NServicebus是运行,为了让服务在MSMQ之后启动,在安装服务的时候需要用到一个开关(我用的是一行,将其分成多行以便于阅读):

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

我试过 "Message Queing" 因为那是服务控制管理器中的内容,但我猜它不采用显示名称。通过右键单击服务并查看顶部的服务名称字段,我发现 MSMQ 是服务名称。

您可以设置服务依赖项而无需重新安装。

使用以下命令:sc config YOURSERVICENAME depend=MSMQ