在发布此问题之前,我搜索了所有论坛帖子。我发现我的问题类似于Sending to authenticated queue但是该线程并没有真正回答我的问题。
我有以下设置(使用.NET应用程序和MSMQ)
请注意,在上面的设置中一切正常。
但是,当我在其常规选项卡上启用专用队列PQ1和PQ2的“已验证”复选框时,问题就开始了。在此设置之后,第一个应用程序将MSMQ消息发送到专用队列,但它最终在“事务死信消息”队列中。 我尝试将经过身份验证的用户组添加到“队列安全性”选项卡并提供完全访问权限但不起作用。
除此之外,我还观察到消息到“死信”队列的“属性”页面上的“发件人”选项卡显示已验证:否
非常感谢您的帮助,使应用程序与Authenticated Queue一起使用。
答案 0 :(得分:4)
初始化Message
对象后,设置
UseAuthentication
属性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);
}