首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用直接队列而不是net.msmq配置customDeadLetterQueue

使用直接队列而不是net.msmq配置customDeadLetterQueue
EN

Stack Overflow用户
提问于 2012-12-04 01:17:24
回答 1查看 380关注 0票数 1

所以我已经在我的WCF服务上设置了MSMQ。我使用msmqIntegrationBinding直接将电子邮件转储到本地队列,然后我的服务捕获它们并处理它们,一切都很好,但我正在尝试添加一个自定义死信队列,尽管它似乎可以工作,即它不会将我的服务置于故障状态,但我定义的自定义队列永远不会包含任何内容。我认为问题在于我试图使用直接队列而不是net.msmq值作为我的customDeadLetterQueue值。

让我通过一些例子来更清楚地说明。我见过的所有样本看起来都像这样。

代码语言:javascript
复制
 <binding name = "CustomDLQ"
       deadLetterQueue = "Custom"
       customDeadLetterQueue = "net.msmq://localhost/private/MyCustomDLQ">
   </binding>

我的配置如下所示。

代码语言:javascript
复制
  <msmqIntegrationBinding>
    <binding name="EmailProcessorBinding" 
             deadLetterQueue="Custom" 
             customDeadLetterQueue="msmq.formatname:DIRECT=OS:.\private$\failedmessages" 
             durable="true" 
             receiveRetryCount="2"
             receiveErrorHandling="Move" 
             maxRetryCycles="3"  >
      <security mode="None" />
    </binding>
  </msmqIntegrationBinding>

注意到customDeadLetterQueue了吗?这是不是就不管用了?还是我在别的地方搞错了?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-12-05 23:10:40

显然,由于缺乏经验,我错过了这一点,但我不需要显式地告诉它我想要使用的队列,这就是我最终配置绑定的方式。

代码语言:javascript
复制
<msmqIntegrationBinding>
 <binding name="EmailProcessorBinding" 
                     durable="true" 
                     receiveRetryCount="0"
                     receiveErrorHandling="Move" 
                     retryCycleDelay="00:20:00" 
                     maxRetryCycles="3" >
  <security mode="None" />
 </binding>
</msmqIntegrationBinding>

请注意,我不需要告诉它任何关于如何处理失败消息的内容。当它失败时,它会简单地将它们放在一个名为poison的子队列中,不需要配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13688400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档