1

モバイル デバイスがデータベースからデータを取得するために使用する Web サーバー上で実行されている WCF プロジェクトがあります。

private void GetData(string serialNum) {
  try {
    var service = new AcpServiceClient();
    service.GetData(serialNum);
  } catch (CFFaultException err) {
    MessageBox.Show(err.FaultMessage, "Web Service Error");
  }
}

を呼び出すとすぐにGetData、次のような醜い XML メッセージが表示されます。

CEZoom0

XML テキストに埋め込まれたエラーが表示されます。

プロシージャ 'sp1_GetCoilFromTable' には、指定されていないパラメーター '@serial_Number' が必要です。

この XML がすべて にダンプされるのはなぜFaultMessageですか?

私が CFFaultException を検索して見つけたすべてのヘルプは、デッドリンクまたは他のユーザーがデッドリンクを使用して回答する質問をしたページを表示しているようです。

私が望むのは、XML を解析するためのルーチンを作成することなく、メインのエラー メッセージに到達するクリーンな方法です。

4

1 に答える 1

3

WCF は、例外データを含む SOAP エンベロープを返しているためです。WCF は巨大なデータ パイプを念頭に置いて開発されており、倹約したり、必要なものだけを提供したりするのではなく、気さくに、知りたいことをすべて提供しようとしています。

サーバー側でエラーのフォーマットを変更できる場合があります。ここにいくつかの MSDN 情報があります: http://msdn.microsoft.com/en-us/library/vstudio/ee513227(v=vs.100).aspx

于 2013-09-04T17:27:18.960 に答える