所以我已经在我的WCF服务上设置了MSMQ。我使用msmqIntegrationBinding直接将电子邮件转储到本地队列,然后我的服务捕获它们并处理它们,一切都很好,但我正在尝试添加一个自定义死信队列,尽管它似乎可以工作,即它不会将我的服务置于故障状态,但我定义的自定义队列永远不会包含任何内容。我认为问题在于我试图使用直接队列而不是net.msmq值作为我的customDeadLetterQueue值。
让我通过一些例子来更清楚地说明。我见过的所有样本看起来都像这样。
<binding name = "CustomDLQ"
deadLetterQueue = "Custom"
customDeadLetterQueue = "net.msmq://localhost/private/MyCustomDLQ">
</binding>我的配置如下所示。
<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了吗?这是不是就不管用了?还是我在别的地方搞错了?
谢谢。
发布于 2012-12-05 23:10:40
显然,由于缺乏经验,我错过了这一点,但我不需要显式地告诉它我想要使用的队列,这就是我最终配置绑定的方式。
<msmqIntegrationBinding>
<binding name="EmailProcessorBinding"
durable="true"
receiveRetryCount="0"
receiveErrorHandling="Move"
retryCycleDelay="00:20:00"
maxRetryCycles="3" >
<security mode="None" />
</binding>
</msmqIntegrationBinding>请注意,我不需要告诉它任何关于如何处理失败消息的内容。当它失败时,它会简单地将它们放在一个名为poison的子队列中,不需要配置。

https://stackoverflow.com/questions/13688400
复制相似问题