0

DuplexChannelFactory生成されたプロキシではなく、を使用してWCFクライアントチャネルを作成しています。

FaultException<MyFault>特定の方法については、サーバー側で既知のものをスローしています。必要に応じて、サービスインターフェイスをマークアップしました[FaultContract(typeof(MyFault))]

クライアント側では、これをキャッチしFaultException<MyFault>てエラーを表示します。

これはすべて問題なく機能しますが、何らかの理由で、WCFはクライアントコードに制御を戻す前にサービス呼び出しを5回再試行しています。これにより、クライアントで顕著な遅延が発生しています。

デバッガーは、コードの次の行に進む前に、クライアントコードのサービス呼び出しで5回中断します。それに踏み込むことはできませんが、呼び出しスタックは、WCFの奥深くで例外がスローされていることを示しています。

サービス側のブレークポイントは1回だけ起動します。

制御が私に戻ったら、チャネルに障害は発生しません。

デバッガーの出力は次のことを示しています。

A first chance exception of type 'System.ServiceModel.FaultException`1' occurred in MyService.dll

Additional information: Fault Test

A first chance exception of type 'System.ServiceModel.FaultException`1' occurred in System.ServiceModel.dll

Additional information: Fault Test

A first chance exception of type 'System.ServiceModel.FaultException`1' occurred in System.ServiceModel.dll

Additional information: Fault Test

A first chance exception of type 'System.ServiceModel.FaultException`1' occurred in System.ServiceModel.dll

Additional information: Fault Test

A first chance exception of type 'System.ServiceModel.FaultException`1' occurred in System.ServiceModel.dll

Additional information: Fault Test

A first chance exception of type 'System.ServiceModel.FaultException`1' occurred in mscorlib.dll

Additional information: Fault Test

これは正常な動作ですか?予想される既知の障害を返すときに、WCFが再試行するのはなぜですか?

4

0 に答える 0