Nservicebus 重新启动后服务自动启动时“消息队列服务不可用”

Nservicebus 重新启动后服务自动启动时“消息队列服务不可用”,nservicebus,Nservicebus,服务由于MSMQ在尝试启动时未启动而终止,因此显而易见的解决方案是将启动类型设置为automatic delayed。我想知道我是不是做错了什么,而不是采取显而易见的解决方案 我正在Win2012上使用NServiceBus V5,从V4升级到V5后,我开始在所有已安装的服务上获取这些消息。它们被安装为在服务器启动时自动启动。这种情况以前从未发生过,如果我手动启动服务,服务将正常启动 我不认为你做错了什么-我认为这是你怀疑的:你的服务在消息队列服务准备好之前启动。我不认为你做错了什么-我认为这是

服务由于MSMQ在尝试启动时未启动而终止,因此显而易见的解决方案是将启动类型设置为automatic delayed。我想知道我是不是做错了什么,而不是采取显而易见的解决方案


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

我不认为你做错了什么-我认为这是你怀疑的:你的服务在消息队列服务准备好之前启动。

我不认为你做错了什么-我认为这是你怀疑的:你的服务在消息队列服务准备好之前启动。

假设NServicebus正在运行NServiceBus.Host.exe,为了让服务在MSMQ之后启动,在安装服务时需要使用一个开关。我使用了一行,将其分成多行以提高可读性:

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

我曾尝试过消息查询,因为这是服务控制管理器中的内容,但我猜它没有显示名称。通过右键单击服务并查看顶部的服务名称字段,我发现MSMQ是服务名称。

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

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

我曾尝试过消息查询,因为这是服务控制管理器中的内容,但我猜它没有显示名称。通过右键单击服务并查看顶部的服务名称字段,我发现MSMQ是服务名称。

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


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

您无需重新安装即可设置服务依赖项


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

检查它们是否依赖于MSMQ服务?@AndreasÖhlund它们不依赖于MSMQ。我正在使用nservicebus.host.exe,并使用servicename等基本开关进行安装。通过查看文档,我似乎可以通过交换机添加依赖项。但我不确定应该为该值插入什么,以使其依赖于msmq,但这看起来应该是解决方案。您介意发布一个包含详细信息的答案吗?检查他们是否依赖msmq服务?@AndreasÖhlund他们不依赖msmq。我正在使用nservicebus.host.exe,并使用servicename等基本开关进行安装。通过查看文档,我似乎可以通过交换机添加依赖项。但我不确定应该为该值插入什么,以使其依赖于msmq,但这看起来应该是解决方案。您介意发布一个包含详细信息的答案吗?@ton.yeung设置消息基础结构服务和您的服务之间的服务依赖关系也很有用。@ton.yeung设置消息基础结构服务和您的服务之间的服务依赖关系也很有用。