4

すべての操作の戻り値の型が OperationStatus である WCF サービスがあります。

[DataContract]
public abstract class ServiceResponse
{
    [DataMember]
    public bool Success { get; set; }

    [DataMember]
    public String StatusReason { get; set; }

}

すべての例外をキャッチする ErrorHandler を作成してから、Success プロパティを false に設定し、StatusReason を「INTERNAL SERROR」に設定して ServiceReponse クラスのクライアント インスタンスに返すようにしたいと考えています。

今のところ、IErrorHandler を実装する独自のクラスがありますが、FaultContract を使用したくありません。StatusReason 型の通常のクライアント オブジェクトに戻りたいだけです。これはできますか?

4

3 に答える 3

4

理由を送信するには、障害コントラクトが必要です。これを試してください。

   MyException fault = new MyException("Error message");
   throw new FaultException<MyException>(fault, new FaultReason("Reason Text"));
于 2009-11-27T18:17:42.590 に答える
2

追加できます

 <serviceDebug includeExceptionDetailInFaults="true"/>

サービス動作のセクションにありますが、実稼働環境には最適ではありません。

于 2009-11-30T15:58:23.037 に答える
2

これは、WCFでの例外の処理に関する優れた記事です。

于 2009-11-27T18:19:14.350 に答える