在发布这个问题之前,我搜索了所有论坛主题。我发现我的问题类似于 Sending to authenticated queue但是,该线程并没有真正回答我的问题。
我有以下设置(使用 .NET 应用程序和 MSMQ)
请注意,在上述设置中一切正常。
但是,当我在其常规选项卡 上为私有(private)队列 PQ1 和 PQ2 启用“已验证”复选框时,问题就开始了.在此设置之后,第一个应用程序将 MSMQ 消息发送到专用队列,但它最终进入“事务死信消息”队列。
我尝试添加 认证用户组到队列安全选项卡并授予完全访问权限,但它不起作用。
除此之外,我还观察到进入死信队列的消息的“属性”页面上的“发件人”选项卡显示为 。已认证:否
非常感谢您的帮助,以使应用程序与 Authenticated Queue 一起使用。
最佳答案
初始化 Message
后对象,设置UseAuthentication
属性(property)给 true
.
将消息发送到经过身份验证的队列的示例:
private void SendToQueue(string queueMessage)
{
var message = new System.Messaging.Message(queueMessage);
message.UseDeadLetterQueue = true;
// This line resolved issue for sending message to queue with Authenticate checkbox checked.
message.UseAuthentication = true;
var queue = new System.Messaging.MessageQueue(@"FormatName:Direct=OS:.\private$\PQ1");
queue.Send(message, MessageQueueTransactionType.Single);
}
关于.net - 在选中验证复选框的情况下将消息发送到私有(private) MSMQ 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17104308/