このようFaultException<CustomFault>
を投げる:私は、次の取得WCFサービスからFaultExceptionをスローすると<T>が発生しました。このフォルトの作成者は理由を指定しませんでした。
throw new FaultException<CustomFault>(new CustomFault("Custom fault message"));
:「このフォールトの作成者が理由を指定していません」今this MSDN article一つに記載 はFaultReason
を使用する必要はありませんが、私には、以下のサービス契約があります。
FaultReason
他を使用することは必須であることを示唆しているMSDNの記事にコメントはあり
[OperationContract]
[FaultContract(typeof(CustomFault))]
CustomType[] SomeMethod(int someParameter);
[DataContract]
public class CustomFault
{
private string report;
public CustomFault(string message)
{
this.report = message;
}
[DataMember]
public string Message
{
get { return this.report; }
set { this.report = value; }
}
}
しかし、他のいくつかの場所で私は人々があなたが必要でない限りFaultReason
を使用すべきではないと主張することを見てきました。
私の質問は次のとおりです。 FaultReason
を使用することは本当に必須ですか?そうでない場合、どうすればFaultException
を投げるときに発生した例外を防ぐことができますか?
EDIT
this articleからサンプルプロジェクトを実行することにより、私はexcact同じ動作を取得します。おそらく、.NETのアップデートによってドキュメント/サンプルが更新されていないことが原因である可能性があります。
WCFで 'FaultException'を投げたときは、私は 'Reason'を設定していないので問題はありませんでした。それがあなたのために働いていない理由について何の光も出せません、申し訳ありません。 –
AakashM
VSデバッガを接続せずにサービスを呼び出すと例外が発生しますか? –
いいえ、私はしません。おそらく、デバッガの処理されない例外レベルの問題です。しかし、ドキュメントが例外を引き起こすフォールト・ハンドリング戦略を使用していることが私には間違っているようです。( –