单向WCF合同,MSMQ和投掷例外

时间:2014-05-29 13:03:38

标签: wcf exception-handling message-queue msmq

我创建了一个针对MSMQ的WCF服务合同。由于它是MSMQ,我使用单向通信:

[OperationContract(IsOneWay = true)]

在我的服务实现中,我有OperationBehavior自动提交事务:

[OperationBehavior(TransactionAutoComplete = true, TransactionScopeRequired = true)]

这可以确保WCF通过将消息放入重试队列(根据我的配置)来处理任何异常。从单向操作中抛出异常似乎很奇怪。这是告诉WCF不提交事务的正确方法吗?

1 个答案:

答案 0 :(得分:0)

经过一番研究,我发现抛出异常是唯一方式告诉WCF使用内置的重试子队列。 WCF吞下了这个例外。它还用于确保交易不会自动完成。