2012-02-02 13 views
0

私はwcfを通じて通信するProvideFault()サービスを持っています。ほとんどの例外については、キャッチしてFaultException<CustomException>に変換し、呼び出し元にハンドラーを処理させたいので、ProvideFault()を実装しました。なぜProvideFaultは私のTimeoutExceptionsをキャッチしますか?

これまでのところ、とてもうまくいっていて、主に動作します。しかし、このサービスは別のサービスを呼び出すことがあり、時にはTimeoutExeptionがスローされます。私たちはその例外をキャッチしたくはありませんが、代わりにそれを呼び出し側にバブルアップさせます(または、必要ならば新しいTimeoutExceptionを投げることさえできます)。問題は、メソッドがTimeoutExceptionをスローすると、ProvideFault()がそれを処理してFaultExceptionにすることです。

wcfを強制的にバブルアップさせてTimeoutExceptionとしますか?

答えて

1

WCFはFaultExceptionsとして例外を送信するため、タイムアウト例外をバブルアップできません。あなたは何ができるか

は、しかし、最大送信することです:

FaultException<TimeoutException> 
+0

をしかし、私はFaultException としてそれをキャッチする必要があります。クライアントはすでにTimeoutExceptionを処理していますが、変更しないことを望んでいました。 – GavinSteyn

+0

あなたは両方をキャッチする必要があります。タイムアウトが発生した場所を確認できるため、正の値にすることもできます。 –

関連する問題