私は新しいものを投げてFaultException("error");
いましたが、「エラー」というテキストでクライアントに戻りました。
今、私はFaultContract
それを適切に行うために a を使用したいと考えています。
したがって、属性を持つ ServiceFault という名前のものを作成しました。[DataContract]
これには単にstring ErrorMessage
プロパティがあります。
私のコードはこれです:
ServiceFault serviceFault = new ServiceFault("Broken.");
throw new FaultException<ServiceFault>(serviceFault);
それをテストするためのコンソール アプリを作成し、障害の例外をキャプチャするために try catch を完了しましたが、次のようになりました。
サービスの呼び出しに失敗しました。考えられる原因: サービスがオフラインであるか、アクセスできません。クライアント側の構成がプロキシと一致しません。既存のプロキシは無効です。詳細については、スタック トレースを参照してください。新しいプロキシを開始するか、デフォルト構成に復元するか、サービスを更新することで、回復を試みることができます。
フォルト例外が発生したと言うべきだと思いますが、そうではありません。
明らかな何かが欠けている可能性がありますか?おそらく構成オプションですか?この例を使用して実装しました: http://msdn.microsoft.com/en-us/library/ms752208.aspx
[FaultContract(typeof(ServiceFault))]
ServiceContractに追加したことを追加する必要があります。
また、注意すべき点: 通常の FaultException をスローすると、クライアントはそれを正しく処理します。
カスタム エラー例外をスローすると、クライアントがサービスを更新して MEX データを取得するのに非常に長い時間がかかります。これは、2 回続けて更新しても疑わしいものです。