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

时间:2010-01-25 18:41:32

标签: wcf soap

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

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

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

1 个答案:

答案 0 :(得分: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();    
        ...    
    }    
}