43

そして、それを修正する方法。メンテナンスのために、スローされたすべての例外をログに記録したいと思います。

4

3 に答える 3

43

これは .Net の既知の問題です。Web サービスに対して Application_Error が発生することはありません。設計上の理由があるかどうかはわかりませんが、機能しません。

Jeff Atwood は、数年前にこれについて投稿(およびフォローアップ) を行い、次のアイデアを示しました。

  • 各 Web サービス メソッドの周りに try-catch ブロックを置きます
  • ファサード デザイン パターンを使用し、親オブジェクトに try-catch を含めます
  • カスタム SOAP 拡張機能または HTTPModule を作成する

大変な作業のように見えますが、私が気にするのは最初のものだけです。

于 2008-10-17T11:50:47.563 に答える
17

より良い: HttpApplication.Error イベント:

ノート:

Web アプリケーションに XML Web サービスが含まれている場合、これらのサービスのグローバルな例外処理に Error イベントを使用することはできません。XML Web サービスの HTTP ハンドラーは、XML Web サービスで発生した例外を消費し、Error が呼び出される前にそれを SOAP エラーに変換します。XML Web サービス例外を処理するには、カスタム グローバル例外ハンドラーで Web サービス例外を処理するための SOAP 拡張機能を構築します。詳細については、「XML Web サービスでの例外の処理とスロー」を参照してください。

于 2009-07-17T02:26:12.093 に答える
14

このトピックに関するMicrosoftの言葉をお探しの方は、「XMLWebサービスでの例外の処理とスロー」を参照してください。

これは関連するセクションです:

Webアプリケーションは複数のXMLWebサービスで構成できますが、Global.asaxファイル内のApplication_Errorイベントをグローバル例外処理に使用することはできません。XML WebサービスのHttpHandlerは、XML Webサービスの実行中に発生した例外をすべて消費し、Application_Errorイベントが呼び出される前にそれをSOAP障害に変換します。

于 2009-07-16T19:21:45.650 に答える