Wcf 死信队列和毒药队列

Wcf 死信队列和毒药队列,wcf,msmq,Wcf,Msmq,我理解死信队列和毒药队列的区别。我将在交易和持久性的背景下发言 DLQ:客户端发送消息。MSMQ无法传递消息。消息仍在队列中,等待发送到目标队列 PQ:消息已成功传递。WCF服务处理该消息。WCF操作期间发生了一些错误。消息被放置在毒药队列中 (如果上面我错了,请纠正我) 现在,如果WCF服务遇到错误,并且事务作用域(属性)已就位,那么它将如何将消息放入毒药队列中,或者必须进行开发?如果需要开发,那么如何开发? 处理有毒信息怎么样?有没有办法将它们放回队列中以便再次处理?如何确定邮件是否有毒?例

我理解死信队列和毒药队列的区别。我将在交易和持久性的背景下发言

DLQ:客户端发送消息。MSMQ无法传递消息。消息仍在队列中,等待发送到目标队列

PQ:消息已成功传递。WCF服务处理该消息。WCF操作期间发生了一些错误。消息被放置在毒药队列中

(如果上面我错了,请纠正我)

现在,如果WCF服务遇到错误,并且事务作用域(属性)已就位,那么它将如何将消息放入毒药队列中,或者必须进行开发?如果需要开发,那么如何开发? 处理有毒信息怎么样?有没有办法将它们放回队列中以便再次处理?如何确定邮件是否有毒?例如,WCF中的操作可能会遇到错误,但可以从中恢复。

您可以在上阅读有关MSMQ的更多信息

“当服务从事务下的目标队列读取消息时,由于各种原因,服务可能无法处理该消息。然后将消息放回队列中再次读取。要处理反复失败的消息,可以在绑定中配置一组有害消息处理属性。有四个属性:ReceiveRetryCount、MaxRetryCycles、RetryCycleDelay和ReceiveErrorHandling。“

您可以在上阅读有关MSMQ的更多信息


“当服务从事务下的目标队列读取消息时,由于各种原因,服务可能无法处理该消息。然后将消息放回队列中再次读取。要处理反复失败的消息,可以在绑定中配置一组有害消息处理属性。有四个属性:ReceiveRetryCount、MaxRetryCycles、RetryCycleDelay和ReceiveErrorHandling。“

只有消息队列才能将消息放置在死信队列中。应用程序只能读取和删除死信队列中的消息。

只有消息队列才能将消息放置在死信队列中。应用程序只能读取和删除死信队列中的消息。

我确实读过这篇文章,但在MSDN提供的示例中,我无法读取和删除死信队列中的消息。”请注意此行为。事实上,下次服务器端服务启动时,它不会处理队列中的任何新消息或旧消息。因此,在服务器端,我添加了引发异常的代码。我看到消息仍在队列中。下次我从客户端发送消息时,服务器不会接收到消息,但它在MSMQ中。我确实阅读了此消息,但在s中在MSDN提供的示例中,我无法看到此行为。事实上,下次服务器端服务启动时,它将不会处理队列中的任何新消息或旧消息。因此,在服务器端,我添加了引发异常的代码。我看到消息仍在队列中。下次我从客户端发送消息时,服务器不会接收到消息,但会收到消息在MSMQ中。