0

ソリューションには、本質的に Automapper を使用して例外を障害に変換するカスタム例外処理動作 (IErrorHandler を実装) があります。

これは初日からうまく機能しています。ただし、共有開発サーバーで ServiceTraceViewer (クライアントではなくサーバー ログを参照) をブラウズしているときに、サービスから返されたエラーで詳細要素が省略されていることに気付きました。

私の開発マシンでまったく同じコードと構成を実行すると、detail 要素が正しく設定されます。私が言うように、構成ファイル (動作、バインディング) は両方のマシンで同一です。どちらの構成でも includeExceptiondetailsInFaults = true が指定されています。

また、両方のマシンで同じコード パスがたどられ、障害コード、障害の理由などのさまざまな値が同じであることを示すと思われる一連のログ ステートメントを追加しました。

私の開発マシンは 2008R2 標準 (64 ビット) です。問題のサーバーも 2008R2 Standard (64 ビット) です。

必要に応じてコードの抜粋を投稿できますが、最初の例として、私たちが見ているものを可能にする環境はありますか?

問題ファイルからの抜粋:

<s:Body u:Id="_1">
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-NZ">An error occured during the request to the ...</s:Text>
</s:Reason>
</s:Fault>
</s:Body>
4

1 に答える 1

0

ここでのエチケットについて100%確信はありません。これは私が愚かさの私の特定のブランドに推測する答えです。たぶん他の誰かが愚かであるなら、答えは彼らに当てはまります...

私はすべてを比較したと確信していました(私はまったく同じコード/構成を述べました)。しかし、私が簡単に視覚化した動作構成ファイル。別の開発者が私に近づいた後、ローカルファイルがサーバーファイルと同じではないことに気付きました。ドー!

実際、サーバーファイルにはビルド後の手順で追加された1行が追加されました。これは、ロギングなどにすでに使用しているIErrorHandler動作に加えて、IErrorHandlerを実装する別のカスタム動作をトリガーします。

私は今、別の質問を開くつもりだと思います。それは、同じインターフェースを実装し、相互の機能を汚染しない(障害を返すなど)複数の動作を持つというアプローチへの答えを求めています。

于 2011-08-08T02:17:03.147 に答える