2009-08-18 5 views
0

오케이, 나 혼자 조금 혼란스러워진다. 다른 WCF 서비스 (서비스 B)를 호출하는 WCF 서비스 (서비스 A)가 있습니다. 예를 들어 서비스 B에 대한 예외를 throw하면 throw new Exception("test") 다음에 서비스 A는 예외를 얻지 않으며 대신 IsFault는 응답 메시지에서 true로 설정됩니다.WCF IsFault 및 FaultException

responseMessage = forwardingChannel.Process(message) 
if (responseMessage.IsFault) { 
    // Yes, there is a fault 
} 

나는 Process 메서드 주위에 try-catch를 넣고 예외를받을 수있을 것으로 예상했다. 누가 나 한테이 일을 설명해 줄 수 있니?

감사

답변

1

서비스 A는 자바 서비스 인 경우에, 당신은 서비스 B를 호출 다시 .NET 예외를 얻을 기대?

기본적으로 WCF 서비스의 처리되지 않은 예외는 오류로 반환됩니다. 서비스가 SOAP을 사용하는 경우 SOAP 오류로 반환됩니다. 정상적인 WCF 클라이언트에서는 FaultException으로 변환됩니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 SOAP 오류가 FaultException으로 어떻게 변환됩니까? 왜 내 WCF 서비스에서 자동으로 실행되지 않지만 클라이언트에서 수행되는 것입니까? 다시 한 번 –

+0

클라이언트에서 서비스 참조 추가를 사용하면 _will_에서 반환 한 SOAP 오류가 FaultException으로 변환됩니다. –

+0

예.하지만 중개 서비스의 경우 동일한 방식으로 참조가 없으므로 어떻게 번역합니까? 감사합니다 –