我已创建WCF服务并正在使用netMsmqBinding绑定。如何处理WCF的MSMQ绑定中的消息失败
这是一个简单的服务,它将Dto传递给我的服务方法,并且不期待响应。该消息被放置在MSMQ中,并且一旦被拾取,就插入到数据库中。
确保没有数据丢失的最佳方法是什么?
我已经试过2种以下方法:
抛出一个异常
这将邮件放在手动审阅死信队列。当我开始strvice
集上的绑定
3之后尝试的receiveRetryCount =“3”我可以处理这一点 - 这instantanously发生,这似乎留在队列中的消息,但故障我的服务。重新启动我的服务将重复此过程。
我非常希望做如下:
尝试过程中的消息
- 如果失败,等待5分钟,该邮件,然后再试一次。
- 如果该过程失败3次,请将消息移至死信队列。
- 重新启动该服务会将所有来自死信队列的消息推回到队列中,以便可以对其进行处理。
我可以做到吗?如果是这样如何? 你能指点我一些关于如何最好地利用WCF和MSMQ给我的场景的好文章。
任何帮助将不胜感激。谢谢!
一些额外的信息
我使用MSMQ 3.0在Windows XP和Windows Server 2003 不幸的是我不能使用内置的针对MSMQ 4.0和Vista/2008带毒邮件支持。
这适用于MSMQ 4.0而不是MSMQ 3.0 – Perhentian 2011-11-16 12:34:19