Я получаю доступ к веб-сервису SOAP 1.1, и он возвращает ошибку. Веб-сервис не определяет контракта отказа в WSDL насколько я вижу. Мой клиент WCF отображает отказ на FaultException (а не FaultException <T>). Это все имеет смысл. Проблема состоит в том, что сервис возвращает некоторую полезную диагностическую информацию в элементе детали отказа, к которому я хотел бы получить доступ так, чтобы я мог вывести его к журналу трассировки. Кажется, что FaultException не обеспечивает доступа к элементу детали, по-видимому, потому что без контракта отказа это не знает то, что там.
Но я не должен десериализовывать деталь XML - просто необработанный XML, как строка сделает прекрасный для диагностических целей.
Там какой-либо путь состоит в том, чтобы получить доступ к детали XML от клиента WCF в этом сценарии?
Как подробно здесь: 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();
...
}
}