我的web应用程序将消息发送到队列中,没有错误,没有异常,没有投诉。Log4Net日志显示
Sending message Test.Nservicebus.Messages.v1.LoggMessage, Test.NServiceBus,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null with ID
456f0b8d-341d-4f92-b3ac-12872c710a6a4121 to destination V1_LoggQueue..............
看起来不错!
但是当我查看管理控制台时,我在队列中没有看到任何消息!(没有队列处理程序)。
我正在发送到本地私有队列。
应该定义一个"传出队列"吗?还是只有当我发布到远程队列时?我的输出队列列表为空。
那么我如何调试它呢?你知道从哪里开始吗?
我的nServicebus init就像
Bus = NServiceBus.Configure
.WithWeb()
.Log4Net()
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();
然后我只使用Bus.Send(MyMessage);
发送消息。
想法?
如果web端点和服务器端点在不同的机器上,您应该在web机器上看到一个出站队列。你可以在那里看到信息。这意味着由于某种原因,MSMQ无法完成向另一台机器的发送。这通常意味着在与MSMQ、MSDTC相关的机器上存在配置问题,或者防火墙可能阻止了它。
如果它都是本地的,这有点难说,因为你不会在出站队列中看到任何东西。我会在目标队列上打开日志记录,看看消息是否真的到达了那里,如果到达了,那么就有东西在处理这个消息。如果不是,那么一定是配置问题