如何从WCF客户端访问SOAP 1.1故障详细信息(无故障合同)

And*_*ndy 6 wcf soap

我正在访问SOAP 1.1 Web服务,它正在返回错误.据我所知,Web服务没有在WSDL中定义任何错误契约.我的WCF客户端将故障映射到FaultException(而不是FaultException <T>).这一切都有道理.问题是服务在故障的detail元素中返回一些有用的诊断信息,我想访问它以便我可以将它转储到跟踪日志中.似乎FaultException没有提供对detail元素的任何访问,大概是因为没有错误契约它不知道那里有什么.

但我不需要反序列化细节XML - 只需将原始XML作为字符串就可以用于诊断目的.

在这种情况下,有没有办法从WCF客户端访问详细信息XML?

Gau*_*ssZ 11

详情如下:http: //www.theruntime.com/blogs/jacob/archive/2008/01/28/getting-at-the-details.aspx

您可以使用此变通方法来获取详细信息:

} catch (FaultException soapEx)
{    
    MessageFault mf = soapEx.CreateMessageFault();    
    if (mf.HasDetail)
    {    
        XmlDictionaryReader reader = mf.GetReaderAtDetailContents();    
        ...    
    }    
}
Run Code Online (Sandbox Code Playgroud)