NServiceBus分发工作程序创建一个名为PRIVATE $ \ order_queue $的队列

时间:2014-12-31 14:08:00

标签: msmq nservicebus worker nservicebus-distributor

我创建了一个NServiceBus分发服务器和Worker,在不同的机器上运行。当我运行worker时,它成功地向Distributor发送一条消息(我可以看到它通过Storage队列处理),但由于某种原因,在Distributor上创建了一个名为

的输出队列。 应该调用队列时,

' DIRECT = TCP:xx.xx.xx.xx \ PRIVATE $ \ order_queue $ ' DIRECT = OS:WORKERDNSNAME \私人$ \ myQueue中&#39 ;.

有谁知道为什么要创建order_queue $?

1 个答案:

答案 0 :(得分:2)

直接来自pg2e.blogspot.co.uk的旧帖子的无耻副本:

  

来自专用网络的HTTP上的交易队列

     

通过http / s从a发送消息到事务队列时   没有公共IP地址的服务器,ACK消息可能很难   到达目的地的时间。这是由于与原因相同的原因   this发布(基本上NAT会导致与邮件目标地址不匹配)

     

默认情况下,收据会发送到发送计算机名称   当然,除非双方都在同一个地方,否则将无法运作   网络。要解决此问题,您必须将收据映射到公共地址   发件人这是通过创建一个xml文件(任何名称)来完成的    C:\ WINDOWS \ system32 \ msmq \ mapping ,内容如下。

<StreamReceiptSetup xmlns="msmq-streamreceipt-mapping.xml"> 
    <setup> 
        <LogicalAddress>http://msmq.domain.com/*</LogicalAddress>
        <StreamReceiptURL>http://[ADDRESS_TO_SENDER]/msmq/Private$/order_queue$</StreamReceiptURL>
    </setup>
    <default>http://xxx.xx.xxx.xx/msmq/Private$/order_queue$</default>
</StreamReceiptSetup>
     

说明:发送到msmq.domain.com上任何队列的所有邮件都将   将收据发送到给定的StreamReceiptURL。的的   order_queue $ queue用于处理事务控制消息。

我怀疑更高版本的MSMQ或NServiceBus会自动创建此队列而无需您自己创建XML文件。