好的,所以我一直试图把我的头转到队列->死信队列->毒子队列的死信队列->?
现在,就据我所知而言,如果消息处理失败或接收方不支持消息的操作,则可以将消息发送到有害队列。我发现的大多数文章显示了使用与主服务相同的契约实现毒药服务。如果错误是契约不支持所提供的消息,那么这难道不会将对毒消息队列有害的消息放入(有毒消息队列)吗?
如果有一个处理程序可以处理有毒队列中的任何内容,难道不是更有意义吗?下面假设WCF消息可能也不安全(而且完全没有经过测试),但是是否有一种方法可以进行防愚昧的有毒队列处理?我越想仔细考虑排队的边缘情况,我就越觉得不可能有一个完整的系统来处理所有的可能性。
[OperationContract(IsOneWay = true, Action = "*")]
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public void CatchAll(Message message)
{
// Log somewhere?
}另一个想法是有一个触发器,将所有消息从毒队列移回要再次处理的死信队列,这可能会再次中毒并无限循环。
我想具体问题是..。人们如何在死信队列中处理有毒信息?一般的问题是--你是如何处理MSMQ中的所有情况的?
发布于 2012-12-08 21:38:28
据我所知,MsmqMessage<T>类型可以与任何WCF绑定一起使用。
因此,如果您指定一个接收类型的MsmqMessage<String>,这应该涵盖所有的基础。您将以字符串的形式接收消息。你怎么处理绳子里的东西是另一个故事..。
https://stackoverflow.com/questions/13767697
复制相似问题