2008-10-14 4 views
3

ASP.NET ASMX 서비스에서 간혹 예외가 발생합니다. 그러나 global.asax Application_Error 메서드는이를 catch하지 않는 것 같습니다. 질문은 이러한 예외를 잡아서 기록하기 위해 전역 오류 처리기를 구성하는 방법입니까?asmx 서비스가 던진 예외는 어떻게 처리합니까?

+0

WebMethods에서 시도해 보았습니까? – Kon

답변

0

예외를 던지고있는 ASMX 또는 AJAX JavaScript입니까?

자바 스크립트 인 경우 JS에 예외 처리를 작성한 다음이를 웹 서버로 다시 호출하여 오류 데이터 저장소에서 추적 할 서버로 다시 푸시해야합니다.

ASMX라면 Application_Error에 의해 잡힐 것입니다.하지만 ASMX가 XML 또는 JSON을 반환하기 때문에 사용자가 찾고 있지 않으면 UI에 반드시 표시되지는 않습니다.

0

클라이언트 측 JavaScript로 서비스 호출을 간단하게 마무리합니다. 서버 측에서 서버 로그에 오류가 로깅되어야합니다. HTTP 500 오류

2

ASMX 웹 서비스의 기본 문제 (문제가되지 않음)는 서비스 계층 뒤의 모든 예외가 SOAP 예외로 클라이언트에 전달된다는 것입니다. SOAP 예외를 catch 한 다음 내부 예외를 찾아야합니다.

더 나은 방법은 응용 프로그램에서 SOAP 처리기를 구현하는 것입니다. 이것에 의해 SOAP 예외를 직렬화 해, 클라이언트 측에서 그것을 직렬화 복원합니다. 이렇게하면 .net 프레임 워크가 아닌 예외 흐름을 완전히 제어 할 수 있습니다.

HTH

+0

당신은 이것을 올바른 방향으로 가르쳐 주시겠습니까? 현재 예외를 허용하지 않는 전역 예외 처리기를 작성하려고합니다. asmx 파일 외부에서 (대신 사용자 정의 페이로드 오브젝트를 사용하여 오류를 나타 내기를 선호합니다). 출력물은 실제로는 JSON이지 SOAP가 아니지만 asp.net 인프라의이 부분을 무시하는 경험이 없으므로 나를 지적 할 수있는 모든 것이 엄청난 도움이 될 것입니다. – Fred

+0

I [this so answer] (https://stackoverflow.com/a/551532/521554)와 같은 HTTP 모듈이 설명됩니다. 나는 그것을 시험하지 않았다. – LosManos

관련 문제