我想使用MSMQ 3.0和Windows 2003记录我的wcf服务正在丢弃的Poison消息
答案 0 :(得分:1)
您可以使用自定义行为实现自定义IErrorHandler并将其与您的服务相关联。在您的实现中,检查引发的异常是否为MsmqPoisonMessageException类型,如果是,请使用System.Messaging,MessageQueue从队列中获取消息并记录它。
有一个sample显示了大部分内容是如何完成的:它将消息移动到另一个队列,但是修改它应该是微不足道的,以便它只是在某处记录消息。
答案 1 :(得分:0)
您可以添加以下服务,从您的毒药队列中读取消息并记录它们。
<service name="YourPosionMessageHandler"
<endpoint
address="net.msq://localhost/private/YourServiceQueue;poison"
binding="netMsmqBinding"
/>
</service>
答案 2 :(得分:0)
在MSDN上有一个很好的例子。 http://msdn.microsoft.com/en-us/library/ms751472.aspx