我正在使用MSMQ和WCF。现在,MSMQ可能会脱机,或者WCF与目标之间可能存在一些通信错误。 我知道我可以订阅serviceHost上的Faulted事件,当MSMQ关闭/离线时,我确实引发了这个事件 - 很棒。 但是,怎么可能知道发生的故障类型?我需要确定它是某种通信错误,如果是这样,我想在一段时间后重新连接并继续尝试直到达到“幻数”。
从服务中抛出没有异常。只是当MSMQ脱机时,WCF服务确实出现故障,但需要知道故障的类型。
由于
答案 0 :(得分:1)
如果它不是异常细节,正如Christian K所暗示的那样,你正在寻找,而是为什么WCF服务/客户端没有收到其他通信异常,那么原因是netMsmqBinding实现了“火与忘记”图案。
WCF服务通过MSMQ管道与客户端完全断开连接,它只侦听MSMQ目标队列上的消息。必须将netMsmqBinding的服务操作配置为单向(返回void),因为一旦WCF客户端成功将消息放入MSMQ传出队列,其工作就完成了。假设MSMQ向WCF服务提供保证消息传递。 MSMQ 4.0将处理您对“重新连接”和“幻数重试”的担忧。