SOAP을 사용하여 클라이언트에 오류를 반환하는 방법을 혼동합니다.SOAP로 인한 WCF 오류
나는 wcf 서비스를 가지고 있지만 클라이언트가 어떤 기술을 사용하고 있는지 확실하지 않아 SOAP 사양을 고수하고 싶습니다.
내가 읽은 한, 오류 메시지가이를 처리하는 가장 좋은 방법 인 것 같습니다.
나는 많은 다른 가능한 오류를 가지고 내 서비스를 볼 수 있습니다: 널 \ 데이터 오류를
- 는 : 이미
- 데이터 범위 오류 "고객 (즉 DB는 3 개 문자를 할 수 있습니다) "," "귀하의 요청을 처리 유형 오류 할 수 없습니다 것은
은 그 고장의 각각의 새로운 객체를 생성하고 같은 던져 적절한 수 있을까요 존재 :
FaultException<NullFault>(nf);
FaultException<InvalidDataFault>(idf);
FaultException<ArguementFault>(af);
FaultException<RangeFault>(rf);
클라이언트는 많은 속성이있는 큰 개체를 실질적으로 모든 방법 (예 : 고객, 주문 등)에 전달하고 있습니다.
이것이 오류를 처리하고 클라이언트에게 다시 보내는 적절한 방법일까요?
메서드 위의 특성에 각 오류를 추가해야 할 필요는 없습니다.
IE : 또한
[OperationContract]
[FaultContract(typeof(NullFault))]
[FaultContract(typeof(InvalidDataFault))]
[FaultContract(typeof(ArguementFault))]
[FaultContract(typeof(RangeFault))]
void CreateCustomer(Customer customer);
, 어떤 GenericFault에 대해? 비즈니스 규칙 오류는 어떻게 처리합니까? 예 : 고객이 이미 존재하고 너무 많은 광고 항목, 해당 지역으로 배송되지 않음, 결제 수단이 수락되지 않았습니까?
이 방법이 적절한 지 또는 다른 해결책이 있고 '비즈니스 규칙'상황을 어떻게 처리 할 것인지 알려주세요.
답장을 보내 주신 John 께 감사드립니다. 빠른 속행 질문 : 단일 결함 방식으로 이동하려면 결함 유형 (예 : NullReference, Range, InvalidData, BusinessRule, Other)의 enum 속성을 만드는 것이 좋습니다. 이 열거 형도 비누 메시지로 전달되는지 알고 계십니까? 감사합니다, 스티븐 – stevenrosscampbell
당신은 그러한 열거 형을 반환 할 수 있지만 고객이 그 정보를보고 그걸로 뭔가를해야한다는 것을 명심하십시오. 귀하가 보낸 정보로 프로그래밍 방식을 사용하지 않을 경우, 보내지 마십시오. –
예, 동의합니다. 내가 할 수있는 일은 그들에게 그것에 대해 이야기하고 적절하게 사용하기를 바랍니다. 감사합니다. 스티븐 – stevenrosscampbell