Журнал .NET или просмотр вызова / ответа SOAP WebService - PullRequest
4 голосов
/ 19 июня 2009

Каков наилучший способ проверки вызовов и ответов от веб-службы в .NET?
Я взаимодействую с веб-службой, написанной на Perl, и сталкиваюсь с проблемами.
Как мне захватить текст звонка и ответа?

UPDATE:
На основании комментария уточнить: Я хотел бы сделать это через .NET, чтобы я мог войти в него или отправить его по электронной почте, когда возникнет проблема.

Ответы [ 4 ]

10 голосов
/ 20 июня 2009

Вы можете сделать это, создав SoapExtension и включив его в своем клиенте веб-службы:

System.Web.Services.Protocols.SoapExtension Class (MSDN)

Ссылка выше предоставляет скелет примера кода, который регистрирует запросы / ответы в файл.

Чтобы включить в вашем приложении, добавьте в ваш web.config или app.config следующее:

<webServices>
    <soapExtensionTypes>
        <add type="YourNamespace.TraceExtension, AssemblyName" 
             priority="0" group="High"/>
    </soapExtensionTypes>
</webServices>

Мое собственное расширение трассировки SOAP реализовано в собственном проекте / сборке. Всякий раз, когда мне нужно отладить запрос / ответ, я просто помещаю DLL в папку приложения (/ bin для ASP.NET) и добавляю ссылку на файл конфигурации, как указано выше.

Например:

<webServices>
   <soapExtensionTypes>
      <add 
         type="DebugTools.SOAP.SOAPTrace.SoapTraceExtension, DebugTools.SOAP" 
         priority="0" group="High"/>
   </soapExtensionTypes>
</webServices>

DebugTools.SOAP.SOAPTrace - это пространство имен SoapTraceExtension
DebugTools.SOAP - это имя сборки, содержащей код следа мыла.

4 голосов
/ 19 июня 2009

Fiddler - ваш лучший друг в изумительном мире веб-сервисов.


Нет, внутри кода ничего не происходит, как указано. И вы этого не хотите - отладка НЕ ​​должна изменять семантику процесса, или вы отлаживаете свой код отладки.

Кроме того, я сердечно приветствую, но fiddler немного лучше для HTTP, так как он предназначен для HTTP. Если я беру байты с провода, это проволочный акул.

0 голосов
/ 20 июня 2009

В веб-службе или клиенте WCF вы можете просто настроить трассировку и / или ведение журнала сообщений. Это может быть сделано во время выполнения без изменений кода.

0 голосов
/ 19 июня 2009

Лично мне нравится использовать анализатор пакетов, например Wireshark . Это отличный инструмент для проверки любого типа сетевого трафика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...