【问题标题】:Send message using MSMQ between two EC2 instances在两个 EC2 实例之间使用 MSMQ 发送消息
【发布时间】:2013-09-30 19:22:52
【问题描述】:

我有两个 Amazon EC2 实例,我想从一台服务器向另一台服务器上的 MSMQ 发送消息。通常,在其他测试环境中,这将在域上,因此不会有问题,但这些 EC2 实例是工作组计算机,而不是在域上。因此,尝试发送到该机器上的公共队列是不可能的。因此,我在第二台服务器上创建了一个私有队列,但看不到如何让消息出现。我尝试了以下方法:

[机器名][队列名] 例如服务器B\测试队列

FormatName:direct=[machinename]\private$[queuename] 例如FormatName:direct=ServerB\private$\testqueue

DIRECT=[机器名]\PRIVATE$[队列名] 例如DIRECT=ServerB\private$\testqueue

FormatName:direct=os:[machinename]\PRIVATE$[queuename] 例如FormatName:direct=os:ServerB\private$\testqueue

注意:我有两台服务器的主机文件条目,列出了工作组/netbios 名称与相关的固定 EC2 IP 地址

使用两个 FormatName: 条目,我没有收到任何错误,但消息永远不会到达。使用其他给我一个关于格式名称的错误。在私人队列中,我已给予“所有人”完全控制权。

谁能建议我如何将消息从一台 EC2 Windows 服务器发送到另一台的私有队列(不在域上)?

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-ec2 msmq


    【解决方案1】:

    在私人队列中,我已给予“所有人”完全控制权。

    这吸引了很多人。 “每个人”不再意味着每个人 - 几年前就改变了。 “所有人”是指本地安全系统有权访问的所有帐户。另一台工作组机器上的帐户对它来说是未知的,因此您需要添加“匿名登录”才能真正获得所有人。

    使用两个 FormatName: 条目,我没有收到任何错误,但消息永远不会到达

    要查看错误,您需要启用负源日志并检查死信队列以获取信息。

    【讨论】:

    • 这应该是批准的答案。我们将计算机管理管理单元添加到 mmc,转到 msmq,然后到私有队列,打开属性并在安全选项卡上,提供匿名读取访问权限。似乎我们也可以通过 powershell 将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security 设置为NewRemoteReadServerAllowNoneSecurityClient,我们将在自动化期间尝试。
    【解决方案2】:

    这不应该是“公认的答案”——但如果你找不到你可以使用 AWS 托管队列实施的方式——SQS。 它与 MSMQ 不是 1-1 兼容,但它是一种有效的后备策略(并且少了一件需要管理的事情)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2018-07-25
      相关资源
      最近更新 更多