私は、呼び出しごとに DB でいくつかの変更を行い、いくつかの応答を返す非常に単純な WCF SOAP サービスを持っています。また、ServiceChannel を使用して、クライアント側のコードから呼び出しています。
サービスが忙しすぎるときにクライアント側のコードが失敗しないようにしたいので、例外がキャッチされた場合にサービス呼び出しを再試行する再試行パターンを実装しました。ただし、WCF サーバー側のコードが原因で例外が発生した場合は再試行したくありません(接続に関連していない場合、またはいずれかの OperationContract コードが実行された場合) (タイムアウトはそうではなかったという意味ではありませんよね? )))。
したがって、次の場合にのみ再試行したい
- リクエストを送信しました
- 例外をキャッチしました
- OperationContract メソッドのサーバー側コードは実行されませんでした
Microsoft の記事 (上記のリンク) には、正確にどの種類の例外が一時的であるかについての情報がほとんどありません。必要なものを正確にキャッチするには、どの例外タイプを使用すればよいですか? または、どのようにフィルタリングする必要がありますか?