Как получить доступ SOAP 1.1 к детали отказа от клиента WCF (никакой контракт отказа)

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

Но я не должен десериализовывать деталь XML - просто необработанный XML, как строка сделает прекрасный для диагностических целей.

Там какой-либо путь состоит в том, чтобы получить доступ к детали XML от клиента WCF в этом сценарии?

6
задан Andy 25 January 2010 в 18:41
поделиться

1 ответ

Как подробно здесь: 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();    
        ...    
    }    
}
11
ответ дан 9 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: