我有一个非常简单的 WCF SOAP 服务,它在每次调用时对 DB 进行一些更改并返回一些响应。我还使用 ServiceChannel 从我的客户端代码中调用它。
我想确保我的客户端代码不会在服务太忙时失败,因此实现了重试模式以在捕获到异常时重试服务调用。但是,如果异常是由我在 WCF 服务器端的代码引起的,我不想重试(如果它与连接无关,或者是否执行了任何 OperationContract 代码(超时并不意味着它不是,对吧?))。
所以我只想重试
- 我已发送请求
- 抓到一个异常
- 我的 OperationContract 方法中的服务器端代码均未执行
Microsoft 文章(上面的链接)几乎没有关于哪些类型的异常确切是瞬态的信息。我应该使用哪些异常类型来准确捕获我需要的内容?或者我应该如何过滤它们?