我正在使用带有pub / sub模式的NserviceBus 2.0。 我的订阅者安装为Windows服务。 但是,在计算机重新启动后,我总是在日志中遇到以下问题:“从队列中查看消息时出现问题:ServiceNotAvailable”。
在深入研究源代码后,我发现这是NserviceBus自定义错误,它发生在MsmqTransport类中。似乎我的订户服务是在Msmq服务之前启动的。总线这应该是不可能的,因为订户的服务将Msmq作为依赖。
一段时间后,服务正在启动并正常运行。但是我在日志中有几兆字节的错误。有时服务甚至没有开始。
任何人都可以帮助我吗?我正在使用Windows 7.Msmq与NserviceBus utils一起安装。
答案 0 :(得分:1)
您需要将服务配置为依赖于MSMQ服务。如果您使用的是NServiceBus主机,则应自动处理此问题。
答案 1 :(得分:0)
见过同样的问题。实际上,由于我们使用了log4net和SmtpAppender,因此影响甚至更严重。拿下邮件服务器,哎哟!似乎这是在NSB 3中修复的。它将workerthreads的数量设置为零并记录“请重启服务”。您甚至可以在发生错误时执行自己的代码。使用OnCriticalError配置lambda。我们最终修补了NSB 2代码,因为我们还没有升级到NSB 3。处理MSMQExceptions,在错误代码ServiceNotAvailable上记录和停止进程,就像他们没有正确的队列权限时一样。您可能应该在任何MSMQExceptions exept IOTimeout上停止服务。