ASP.NET ASMX サービスが例外をスローすることがあります。ただし、global.asax Application_Error メソッドはそれらをキャッチしていないようです。問題は、これらの例外をキャッチしてログに記録するようにグローバル エラー ハンドラーを構成する方法です。
3 に答える
ASMX Web サービスの基本的な問題 (問題ではありません) は、サービス レイヤーの背後にある例外が SOAP 例外としてクライアントにスローされることです。SOAP 例外をキャッチし、そこで内部例外を探す必要があります。
より適切でクリーンなアプローチは、アプリケーションに SOAP ハンドラーを実装することです。これを介して SOAP 例外をシリアル化し、クライアント エンドで逆シリアル化します。このようにして、.net フレームワークではなく、例外フローを完全に制御できます。
HTH
例外をスローしているのは ASMX または AJAX JavaScript ですか?
Javascript の場合は、例外処理を JS に記述し、それをサーバーにプッシュして、エラー データストアで追跡する必要があります (おそらく Web サービスへの別の呼び出しを介して)。
それが ASMX の場合は、おそらく Application_Error に引っ掛かりますが、ASMX は XML または JSON を返すため、探していない限り、必ずしも UI に表示されるとは限りません。
クライアント側 I サービスへの呼び出しを JavaScript でラップするだけです。サーバー側では、エラーはサーバーログに. http 500 エラー