我有一个应用程序从队列中读取消息,对消息执行一些操作,然后将消息提交到输出队列。我们称之为发送方。
我为MSMQ使用专用服务器。我们称之为服务器端。
问题是消息永远不会出现在输出队列中。
我已经在发件人和服务器上启用了End2End登录。在发送方面,它显示“通过网络发送的消息”,在队列服务器端,它所说的是“消息来自网络”。因此,消息离开发送方,并由服务器接收,但不会被放入输出队列。
在代码(.NET 4.5.1)中,我尝试过启用死信日志。这是我发送邮件的代码:
// Enqueue an object.
public static void EnqueueObject(object obj, MessageQueue queue)
{
using (Message msg = new Message(obj, queue.Formatter))
{
msg.UseJournalQueue = false;
msg.UseDeadLetterQueue = true;
lock (queue)
queue.Send(msg);
}
}
我发现消息在流程早期的其他队列的日志中显示,但发件人或服务器的死信日记中没有任何内容。
所有我必须继续的是服务器端的End2End事件日志输出,其中显示“消息来自网络”,然后没有其他内容。
我的所有队列都拥有对每个人和ANONYMOUS LOGON的完全控制权。使用相同底层队列代码的其他应用程序与同一服务器上的其他队列一起工作。只有这一个应用程序具有这一个输出队列。
我的留言在哪里?