我的网络应用程序向队列发送消息,没有错误,没有例外,没有投诉。 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-12872c710a6a\4121 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);
发送消息。
想法?
答案 0 :(得分:0)
如果Web端点和服务器端点位于不同的计算机上,您应该在Web计算机上看到出站队列。你可能会看到那里的消息。这意味着由于某种原因,MSMQ无法完成向其他计算机的发送。这通常意味着在与MSMQ,MSDTC相关的任一计算机上都存在配置问题,或者防火墙可能阻止它。
如果它是全局的,那么它就更难说了,因为你不会在出站队列中看到任何东西。我会打开目标队列上的日志记录,看看消息是否实际存在,如果有,那么正在处理消息。如果没有,则必须是配置问题。