我有一个发布消息的Web Api项目和一个订阅这些消息的主机。这在开发环境中工作正常(在2台机器上测试)。
当我们将它部署到测试服务器时,它没有工作。发布方法调用不会抛出任何异常,看起来一切正常,但消息没有被添加到消息队列中。我们检查了队列的权限,所有内容都在测试服务器中设置,就像在我们的开发环境中一样。
这就是我们在Web Api中设置总线的方法:
Bus = Configure.With()
.Log4Net()
.DefaultBuilder()
.UseTransport<Msmq>()
.UnicastBus()
.RavenSubscriptionStorage()
.CreateBus()
.Start((() => Configure.Instance.ForInstallationOn<Windows>().Install()));
编辑: 我刚看到订阅者未在RavenDB中注册。发布者表在测试服务器中不包含任何文档,而在开发计算机中它包含对订阅者的引用。 对于为什么会发生这种情况以及如何解决它的想法?
答案 0 :(得分:0)
但丁, 订户应该已经发送了包含订阅的控制消息。您应该在开发系统的日志中看到它。然后是发布者存储订阅。
你看到收到这个的任何记录吗?它通常类似于“订阅类型”。
如果你的发布者收到了这个,那么无法连接或找到Raven,那也应该记录一些例外。
仔细检查您的订阅者配置,以确保您订阅的类型已映射到正确的发布者并且消息正在通过。它可能会卡在订户机器的出站队列中......
希望这有帮助! 乔。