2

我知道,一旦 WCF 客户端将消息传递到 MSMQ,netmsmqbinding 会提供开箱即用的重试,以防服务出现故障。

但是,如果我的客户端首先未能将消息放入 MSMQ,WCF 中是否有现成的客户端重试可用,或者我是否必须在客户端代码中实现客户端队列和重试逻辑?

谢谢

4

1 回答 1

2

如果您在客户端站上运行 MSMQ 服务器并且 MSMQ 侦听器服务已启动并正在运行,那么您发送到服务的消息甚至不会放在客户端队列中,这是极不可能的情况担心。我认为 MSMQ 不会为您提供任何检查,您应该在客户端上编写一些方法来定期Peek()本地队列并为到达队列的每条消息发送确认回执,这是可行的,因为您可以轻松访问您的代码中的本地队列而且,通过 MSMQ 从客户端发送到服务的每条消息都将始终通过本地队列。如果您的 Send() 方法没有返回错误,您还可以判断该消息已到达队列。但我不认为你真的需要担心客户端没有首先到达本地队列的消息。

于 2012-06-01T09:19:26.897 回答