을 볼 수 없습니다. 질문 제목에서 WCF를 처음 사용한다고 생각할 수 있습니다. 이 웹 서비스를 구현했고 메서드 중 하나에서 사용자 지정 FaultException을 throw합니다.WCF 클라이언트는 사용자 정의 오류 예외
namespace Feed
{
[ServiceContract]
public interface IMyClass
{
[OperationContract]
[FaultContract(typeof(CustomError))]
DataSet MyMethod(int A, int T);
}
[DataContract]
public class CustomError
{
public CustomError(string msg, int code, int id)
{
Id = id;
ErrorMessage = msg;
ErrorCode = code;
}
[DataMember]
[DataMember]
public string ErrorMessage
{
get;
set;
}
[DataMember]
public int ErrorCode
{
get;
set;
}
[DataMember]
public int Id
{
get;
set;
}
}
}
그런 다음, 나는 지금까지
namespace Feeds
{
public class MyClass : IMyClass
{
DataSet MyMethod(int A, int T)
{
try
{
//todo
DataSet ds = new DataSet();
return ds;
}
catch (Exception ex)
{
throw new FaultException<CustomError>(new CustomError("a", 1, 0));
}
}
}
}
너무 좋아 MyMethod라는
의 구현에 적절한 예외를 throw합니다. 이제이 웹 서비스를 사용하는 간단한 ASP.NET 웹 사이트를 만들었습니다. MyClass.svc 웹 서비스에 대한 웹 사이트에 WebReference를 추가했습니다. 문제는 내가 예외를 잡으려고 할 때 : catch (FaultException ex) { } CustomError를 인식 할 수 없습니다. 다음과 같은 문제 해결을 수행했습니다 : 1. wsdl을 업데이트했는지 확인하십시오. (많은 시간을 할애하고 다른 것들을 변경했습니다. 모든 것이 클라이언트 측에 반영되었습니다) 2. WishHttpBinding뿐 아니라 BasicHttpBinding을 시도했습니다. 차이점) 3. Google 검색 및 MSDN의 샘플 코드를 종교적으로 따랐습니다.아직 운! 내가 놓친 게 있니? 어떤 제안이라도 대단히 감사하겠습니다.
구성 파일에서 [returnUnknownExceptionsAsFaults] 속성을 true로 설정하여 오류 세부 정보를 얻을 수 있습니다. –