使用NServiceBus,如何检查总线是否准备就绪?

使用NServiceBus,如何检查总线是否准备就绪?,nservicebus,Nservicebus,如果我尝试发送一条消息(例如使用bus.send(…)),但由于某种原因端点不可用(可能尚未设置),我会得到一个类似于以下的异常 目标队列的myqueue@mycomputer“找不到。你可以 已错误配置此类邮件的目标 (myCommand.SomeCommand)的MessageEndpointMappings中 配置文件中的UnicastBusConfig节。也可能是 给定队列尚未创建的情况,或者 已删除 我希望通过提前检查(在应用程序启动时)总线是否准备就绪,端点是否可以到达来避免这种情况

如果我尝试发送一条消息(例如使用
bus.send(…)
),但由于某种原因端点不可用(可能尚未设置),我会得到一个类似于以下的异常

目标队列的myqueue@mycomputer“找不到。你可以 已错误配置此类邮件的目标 (myCommand.SomeCommand)的MessageEndpointMappings中 配置文件中的UnicastBusConfig节。也可能是 给定队列尚未创建的情况,或者 已删除

我希望通过提前检查(在应用程序启动时)总线是否准备就绪,端点是否可以到达来避免这种情况


除了捕获每条总线上的异常。Send,是否有其他方法来确定总线的运行状况?我正在寻找类似于
bus.IsReady()
的东西,但我找不到它。

您使用的是什么配置文件?您使用的是哪个版本的NServiceBus?只有当客户端与服务器位于同一台机器上时,才会发生此异常。如果服务器位于远程计算机上,则无法知道队列是否存在,因此无法确定接收端点是否正常。如果发送到多个端点,其中一个端点出现故障,该怎么办?简而言之,检查其他端点的状态是没有意义的。>再考虑一下,为什么我不能将消息存储在>本地队列中,然后在>联机时将它们转发到远程队列?像这样的东西已经内置到NSB中了吗?=>这正是MSMQ的存储转发功能自动为您所做的。将您的web应用配置为发送到不存在的服务器,并查看MSMQ中的“传出队列”您使用的是什么配置文件?您使用的是哪个版本的NServiceBus?只有当客户端与服务器位于同一台机器上时,才会发生此异常。如果服务器位于远程计算机上,则无法知道队列是否存在,因此无法确定接收端点是否正常。如果发送到多个端点,其中一个端点出现故障,该怎么办?简而言之,检查其他端点的状态是没有意义的。>再考虑一下,为什么我不能将消息存储在>本地队列中,然后在>联机时将它们转发到远程队列?像这样的东西已经内置到NSB中了吗?=>这正是MSMQ的存储转发功能自动为您所做的。将web应用配置为发送到不存在的服务器,并查看msmq中的“传出队列”