제 3 자 비누 서비스를 성공적으로 사용하고 있습니다. 자동으로 클래스를 생성 한 비누 웹 서비스에 서비스 참조를 추가했습니다. WCF FaultException 응답에서 세부 정보 추출
오류가이 같은 비누 응답을 반환 발생
: 나는 오류를 잡을 수 있지만 세부 사항을 추출 할 수 없습니다<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring xsi:type="xsd:string">Error while reading parameters of method 'Demo'</faultstring>
<detail xsi:type="xsd:string">Invalid login or password. Connection denied.</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
. 나는 다음과 같은 코드를 시도 :
(가) 세부 노드로 다음과 그것을 오류가 객체가 아닌 그러나
catch (FaultException ex)
{
MessageFault msgFault = ex.CreateMessageFault();
var elm = msgFault.GetDetail<string>();
//throw Detail
}
:
Expecting element 'string' from namespace 'http://schemas.datacontract.org/2004/07/MyDemoNamespace'.. Encountered 'Text' with name '', namespace ''.
이 타사 API 그래서 난 응답을 변경할 수 있습니다.
아직도 – John
내 문제를 완벽하게 해결 [] 문제가 있습니다! – eouw0o83hf
detail이 문자열이 아닌 경우이 코드는 ok입니다. MessageFault msgFault = ex.CreateMessageFault(); XmlReader readerAtDetailContents = msgFault.GetReaderAtDetailContents(); var readOuterXml = readerAtDetailContents.ReadOuterXml(); var data = XElement.Parse (readOuterXml); 사전 <문자열, 문자열> 요소 data.Elements =() .ToDictionary (elementKey => elementKey.Name.LocalName, elementVal => elementVal.Value, NULL); – Jerome2606