gpt4 book ai didi

.net - 在选中验证复选框的情况下将消息发送到私有(private) MSMQ 队列?

转载 作者:行者123 更新时间:2023-12-04 02:53:51 26 4
gpt4 key购买 nike

在发布这个问题之前,我搜索了所有论坛主题。我发现我的问题类似于 Sending to authenticated queue但是,该线程并没有真正回答我的问题。

我有以下设置(使用 .NET 应用程序和 MSMQ)

  • 已安装 具有 Active Directory 服务集成模式的 MSMQ 在我的 Windows7 64 位机器上。
  • 我创建了两个私有(private)队列(PQ1 和 PQ2)作为事务队列,并将其安全选项卡配置为提供对域用户 ID(域用户 ID,它也是 Win7 机器上的管理员)的完全访问权限。
  • 在我的项目中,我有三个由 Windows 服务托管的 .NET 4.0 应用程序(以相同域用户 ID 的访问权限运行)在这台 Windows 7 机器上
  • 第一个 .NET 应用程序在其自己的线程上运行,该线程从数据库读取数据并将 MSMQ 消息发送到 PQ1 队列
  • 第二和第三个是从 Windows 服务自托管的 WCF 应用程序(例如 wcfA 和 wcfB)。
  • wcfA 和 wcfB 为 MsmqIntegrationBinding 配置,传输安全模式属性 mqAuthenticationMode 设置为“WindowsDomain”,msmqProtectionLevel 设置为“EncryptAndSign”
  • wcfA 从 PQ1 获取消息,然后处理该消息并将另一条 MSMQ 消息发送到 PQ2
  • wcfB 从 PQ2 获取消息并对其进行处理

  • 请注意,在上述设置中一切正常。

    但是,当我在其常规选项卡 上为私有(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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com