WCF(Windows Communication Foundation) 웹 HTTP 오류 처리를 사용하면 HTTP 상태 코드를 지정하는 WCF 웹 HTTP 서비스에서 오류를 반환하고 작업과 동일한 형식(예: XML 또는 JSON)을 사용하여 오류 세부 정보를 반환할 수 있습니다.
WCF 웹 HTTP 오류 처리
이 클래스는 WebFaultException HTTP 상태 코드를 지정할 수 있는 생성자를 정의합니다. 그러면 이 상태 코드가 클라이언트에 반환됩니다. 클래스 WebFaultException 의 WebFaultException<T> 제네릭 버전을 사용하면 발생한 오류에 대한 정보가 포함된 사용자 정의 형식을 반환할 수 있습니다. 이 사용자 지정 개체는 작업에서 지정한 형식을 사용하여 직렬화되고 클라이언트로 반환됩니다. 다음 예제에서는 HTTP 상태 코드를 반환하는 방법을 보여 줍니다.
public string Operation1()
{
// Operation logic
// ...
throw new WebFaultException(HttpStatusCode.Forbidden);
}
다음 예제에서는 사용자 정의 형식에서 HTTP 상태 코드 및 추가 정보를 반환하는 방법을 보여 줍니다.
MyErrorDetail
은 발생한 오류에 대한 추가 정보를 포함하는 사용자 정의 형식입니다.
public string Operation2()
{
// Operation logic
// ...
MyErrorDetail detail = new MyErrorDetail()
{
Message = "Error Message",
ErrorCode = 123,
}
throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);
}
앞의 코드는 금지된 상태 코드와 개체의 MyErrorDetails
인스턴스를 포함하는 본문이 포함된 HTTP 응답을 반환합니다. 개체의 MyErrorDetails
형식은 다음을 통해 결정됩니다.
서비스 작업에 지정된
ResponseFormat
또는 WebGetAttribute 특성의 매개 변수 WebInvokeAttribute의 값입니다.Format 속성에 액세스하여 OutgoingWebResponseContext의 값을 확인합니다.
이러한 값이 작업의 서식에 미치는 영향에 대한 자세한 내용은 WCF 웹 HTTP 서식을 참조하세요.
WebFaultException는 FaultException이므로 SOAP 엔드포인트뿐만 아니라 웹 HTTP 엔드포인트를 노출하는 서비스에 대한 오류 처리 프로그래밍 모델로 사용할 수 있습니다.