Log Soap сообщение в C # - PullRequest
       5

Log Soap сообщение в C #

0 голосов
/ 15 сентября 2018

У меня есть консольная программа на C #, которая отправляет запрос службе SOAP.

Этот интерфейс к сообщению SOAP был создан с помощью Microsoft.VSDesigner, Version 4.0.30319.42000. со следующими шагами:

  1. Щелкните правой кнопкой мыши Список литературы
  2. Выберите Добавить справочник услуг
  3. Выберите Дополнительно
  4. Добавить веб-ссылку
  5. Введите URL-адрес или службу, которую я использую
  6. Назовите услугу
  7. Нажмите Добавить ссылку.

На данный момент у меня есть сгенерированный код, который вызывает службу.

Вот фрагмент, который вызывает сервис:

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.xxxxx.com/VerifyInsurance", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("CoverageResponseDocument", Namespace="http://www.xxxxx.com/CoverageVerification/")]

public CoverageResponseDocument VerifyInsurance([System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.xxxxx.com/CoverageVerification/")] CoverageRequest CoverageRequest) 
{
    object[] results = this.Invoke("VerifyInsurance", new object[] {
                    CoverageRequest});
    return ((CoverageResponseDocument)(results[0]));
}

Что я могу изменить, чтобы я мог видеть точную строку сообщения SOAP, которое отправлено и получено?

Либо путем изменения кода, либо путем изменения конфигурации.

Я давно работаю разработчиком, но плохо знаком с Visual Studio, поэтому буду признателен за ответ, в котором используется терминология, которую я вижу на экране.

1 Ответ

0 голосов
/ 17 сентября 2018

Привет. Несколько замечаний (хотя я принимаю тот факт, что мне не удалось изменить код для регистрации запроса и ответа, ниже приведены несколько других опций, которые я проверил, которые вы можете попробовать) -

  1. Получить необработанный ответ на запрос с помощью Diagnostics (Tracing)

Я выполнил те же шаги и добавил Справочник по обслуживанию , применил диагностику и смог записать необработанный ответ на запрос в файл журнала - вы можете прочитать о трассировке здесь-

  1. Если у вас есть доступ к коду веб-службы, вы можете написать Soap Extensions.

Так что SOAPExtention составляет

Базовый класс для расширений SOAP для веб-служб XML, созданных с использованием ASP.NET.

Класс расширения предоставляет подробные сведения об уровне обработки необработанного запроса и ответа. Один из способов, которым вы можете войти, чтобы отслеживать файл журнала для вашего исследования. Один пример можно найти здесь -

  1. Другой подход заключается в использовании fiddler вне Visual Studio для мониторинга трафика http и https

В SO есть еще один поток, в котором говорится об этом. Пожалуйста, посмотрите.

Получение данных мыла RAW из веб-эталонного клиента, работающего в ASP.net

Ниже более подробно рассматривается использование SOAP-прокси . Добавление веб-ссылки - это старый способ ссылки на клиентский прокси. Если нет оснований использовать только веб-ссылку, используйте сервисную ссылку вместо веб-ссылок. Вы можете найти более подробную информацию об этом в следующих темах.

/1931601/veb-ssylka-protiv-sluzhbytab-top

...