2010-01-11 4 views
1

웹 서비스 집합에 대한 WCF 기반 테스트 장치 클라이언트가 있습니다. 테스트 클라이언트를 통해 원시 요청과 응답을 서비스로주고받을 수 있습니다. 메시지 검사기 끝점 동작은 원시 요청 및 응답 메시지를 "선택"하고 나중에 UI에 표시 할 수 있도록 저장하는 데 사용됩니다.서버가 HTTP 401을 반환하면 어떻게 WCF FaultException을 얻을 수 있습니까?

유효하지 않은 자격 증명이 사용되는 경우를 제외하면 위와 같이 훌륭하게 작동합니다. 서버는 발생 된 세부 사항이 포함 된 SOAP 오류와 함께 HTTP 401을 반환합니다. 클라이언트에

  1. 이이 MessageSecurityException 아닌 FaultException으로 표시됩니다, 그래서 나는 고장에서 세부 사항을 얻을 수 없습니다 이것은 몇 가지 방법으로 저를 상처.
  2. 이 예외는 내 메시지 관리자의 AfterReceiveReply 이벤트 처리기가 실행되는 것을 방지하므로 원시 응답에 액세스 할 수 없습니다.

SOAP 오류가 FaultException으로 전달되고 반환되는 HTTP 상태 코드에 관계없이 내 메시지 관리자가 응답을 처리하도록 할 수있는 방법이 있습니까?

감사합니다.

+0

서버 측에서 사용하는 인증 유형은 무엇입니까? 클라이언트가 자격 증명을 어떻게 전달합니까? –

+0

서버 쪽 기본 인증. 여기에 설명 된대로 HTTP 헤더를 수동으로 생성하여 자격 증명을 전달합니다. ==> http://forums.silverlight.net/forums/t/18729.aspx – WayneC

답변

1

수 없습니다. .NET 예외가 서버 측 코드 인에 이 발생하여 발견 된 경우에만 FaultException을 받게됩니다.

HTTP 401은 "무단 접근"입니다. 서버 코드에 도달하기 전에 예외가 발생합니다. -> 항상 MessageSecurityException이 아니며 결코 FaultException이 아닙니다. FaultException, 둘 중 하나).

실행 전에 서버 코드 (예 : EndpointNotFoundException 또는 TimeoutException)에 도달하면 예외가 발생하지 않습니다.

그러나 모든 기본 WCF 예외는 공통 기본 클래스에서 비롯됩니다 (예 : CommunicationException). 어쩌면 당신은 그걸 대결로 처리 할 수 ​​있습니다.

+0

응답 해 주셔서 감사합니다. 좀 더 자세히 ... .... 원시 응답을 보면 soapUI 또는 이와 유사한 도구를 사용하여 서비스가 SOAP 오류와 함께 401을 반환합니다. 그래서, 정보는 거기에 있습니다, 나는 메시지 감찰관이 MessageSecurityException 때문에 결코 발생하지 않기 때문에 나는 그것에 도달 할 수 없습니다. 원시 응답에 도달하는 다른 방법은 없습니까? – WayneC

관련 문제