2009-08-18 2 views
0

OK、ここで少し混乱しています。私は別のWCFサービス(サービスB)を呼び出すWCFサービス(サービスA)を持っています。たとえば、サービスBの例外をスローします。 throw new Exception("test")サービスAは例外を取得せず、応答メッセージでIsFaultをtrueに設定します。WCF IsFaultとFaultException

responseMessage = forwardingChannel.Process(message) 
if (responseMessage.IsFault) { 
    // Yes, there is a fault 
} 

私はProcessメソッドの周りにtry-catchを配置し、例外を受け取ることができると予想しました。誰かが私にここで起こっていることを説明してもらえますか?

おかげ

答えて

1

サービスAは、Javaサービスであれば、あなたがサービスBを呼び出してから戻って、.NET例外を得ることを期待しますか?

デフォルトでは、WCFサービスの未処理の例外がfaultとして返されます。サービスがSOAPを使用している場合、SOAPフォールトとして返されます。通常のWCFクライアントでは、FaultExceptionに変換されます。

+0

返信いただきありがとうございますが、SOAPエラーをFaultExceptionに変換するにはどうすればよいですか?なぜそれは私のWCFサービスで自動的には起こりませんが、クライアントではどうなりますか? ありがとう –

+0

クライアントでサービス参照の追加を使用すると、サービスによって返されたSOAPフォールトがFaultExceptionに変換されます。 –

+0

はい、仲介サービスの場合は同じ方法で参照がありませんので、どのように翻訳しますか?ありがとう –

関連する問題