제대로 WCF REST 서비스에서 사용자 지정 오류가 발생합니다 다음WCF 나머지 서비스 오류 처리 및 나의 이해에서 WebChannelFactory
이 보인다 피들러에서[DataContract(Namespace = "")]
public class ErrorHandler
{
[DataMember]
public int errorCode { get; set; }
[DataMember]
public string errorMessage { get; set; }
} // End of ErrorHandler
public class Implementation : ISomeInterface
{
public string SomeMethod()
{
throw new WebFaultException<ErrorHandler>(new ErrorHandler()
{
errorCode = 5,
errorMessage = "Something failed"
}, System.Net.HttpStatusCode.BadRequest);
}
}
나는 다음과 같은 원시 데이터를 얻을 수, 작업
HTTP/1.1 400 Bad Request
Cache-Control: private
Content-Length: 145
Content-Type: application/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
Set-Cookie: ASP.NET_SessionId=gwsy212sbjfxdfzslgyrmli1; path=/; HttpOnly
X-Powered-By: ASP.NET
Date: Thu, 03 May 2012 17:49:14 GMT
<ErrorHandler xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><errorCode>5</errorCode><errorMessage>Something failed</errorMessage></ErrorHandler>
하지만 지금 내 클라이언트 측에서 나는 다음과 같은 코드를 가지고 : 이제
WebChannelFactory<ISomeInterface> client = new WebChannelFactory<ISomeInterface>(new Uri(targetHost));
ISomeInterface someInterface = client.CreateChannel();
try
{
var result = someInterface.SomeMethod();
}
catch(Exception ex)
{
// Try to examine the ErrorHandler to get additional details.
}
을 코드 실행되면 catch에 도달하고 '원격 서버에서 예기치 않은 응답을 반환했습니다 : (400) Bad Request.'라는 메시지가있는 System.ServiceModel.ProtocolException
입니다. 이 시점에서 ErrorHandler 세부 정보를 볼 방법이없는 것 같습니다. 아무도 이것에 빠지지 않았나요? 이 시점에서 ErrorHander 세부 정보를 얻을 수있는 방법이 있습니까?