UI에서 BLL/DAL과 통신하기 위해 WCF를 사용하여 REST 서비스를 만들었습니다. 자, 이제 REST에서 전역 처리 방식을 통해 예외 처리를 구현하고 싶습니다. HTTPClient를 사용하여 클라이언트에서 REST와 통신합니다. 다음은 방법을 다음, 내가 구현 한 예외 처리 :REST에서 예외 처리
접근 1 :
OutgoingWebResponseContext response = WebOperationContext.Current.OutgoingResponse;
response.StatusCode = System.Net.HttpStatusCode.Unauthorized;
response.StatusDescription = ex.Message;
success = false;
접근법 2 :
throw new WebProtocolException(HttpStatusCode.NotFound, ex.Message, null);
하지만 어떻게 든 내가 클라이언트 측에서 그들을 잡을 수 없습니다입니다. 전 세계적으로 서비스가 제기 한 예외를 처리하기 위해 몇 가지 지침을 제시하십시오.
나는 예외에 대해 사용자에게 통지하기 위해 UI하기 위해 서비스에서 오류 코드 및 오류 메시지와 함께 WebProtocolException (접근법 2)를 던지는하고있다. UI 측에서 오류 코드를 수신 할 수 있지만 오류 메시지 또는 세부 사항을 가져올 수 없습니다.
다른 서비스 (.svc 확장자)를 만들고 서비스의 마크 업에 다음 줄을 추가했습니다. "Factory = 'Microsoft.ServiceModel.Web.WebServiceHost2Factory'" 이제 클라이언트 측 (UI)에서 오류 코드와 함께 오류 메시지를받을 수 있습니다.
누구나 .svc 파일 대신 클래스 파일 인 기존 서비스에서 WebServiceHost2Factory 메서드를 사용하는 방법을 알 수 있습니까?
모든 제안 사항을 높이 평가할 것입니다. 감사합니다.
나쁜 소식은 소지하지 못하게되지만 WebServiceHost2Factory는 더 이상 사용되지 않는 REST Starter Kit에 있으며, 라이센스는 Net 4가 출시되는 지금 효과적으로 사용되지 않습니다. –