Java 클라이언트 및 C# mvc3 클라이언트에서 소비하는 WCF 4 Rest 서비스가 있습니다. 응답 내용은 json으로 반환되어야합니다.wcf rest ierrorhandler webfaultexception
모든 예외/오류를 일관된 방식으로 클라이언트에 반환 할 수 있기를 원합니다. 나는 WebFaultException이 사용되어야하고 실제로 잘 동작한다는 것을 읽었다.
그러나 웹 프로젝트가 아닌 다른 프로젝트에서 사용할 수 있으므로 WebFaultExceptions를 사용하여 응용 프로그램 논리 프로젝트를 오염 시키려고하지 않습니다.
따라서 WCF Rest 서비스에서 IErrorHandler를 구현하여 예외를 catch 한 다음 특정 예외 (ValidationException)에 대해 WebFaultException에 래핑 된 오류로 예외를 반환합니다. 그러나이 작동하지 않는 것 및 양식 피들러라는 때 다음 Http 504 응답을 얻을
[Fiddler] ReadResponse() 실패 : 서버가이 요청에 대한 응답을 반환하지 않았습니다.
나는 내가하고있는 것의 본질을 보여주기 위해 코드를 베어 본으로 줄였습니다.
public void ProvideFault(Exception error,
MessageVersion version,
ref Message fault)
{
var ex = new WebFaultException<Exception>(
new Exception("you can't do that"),
HttpStatusCode.Unauthorized);
var xmf = ex.CreateMessageFault();
fault = Message.CreateMessage(version,
null,
xmf,
new DataContractJsonSerializer(xmf.GetType()));
}
내가 뭘 잘못하고 있니?
IErrorHandler에서 WebFaultException을 사용하는 방법을 알아 냈습니까? – bpeikes