WCF - Просмотр xml запрос/ответ к безопасному веб-сервису

У меня есть сервисное приложение WCF, и в этом приложении я делаю вызовы к стороннему веб-сервису по безопасному соединению.

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

Что мой лучший выбор состоит в том, чтобы просто видеть запросы xml и ответы, которые я делаю к этому стороннему веб-сервису?

Я использую сгенерированные прокси-классы, таким образом, у меня в настоящее время нет доступа к сырым данным xml, что я отправляю и получаю назад. Мне любопытно, если я по усложнению чего-то, что может быть сделано намного более простое. Это - моя машина разработки, и у меня есть доступ к в значительной степени всему, никаким ограничениям.

Простой способ сделать это?

Править:

В данный момент я не должен даже использовать Трассировку. Я просто должен видеть сериализированный вывод своего запроса/ответа. Даже если я могу сделать это от отладчика Visual Studio, или такой Он поможет.

6
задан kaivalya 11 March 2010 в 17:59
поделиться

3 ответа

Поскольку я пытался прочитать мыльные сообщения в веб-службу asmx, которая ссылается на мое приложение WCF, и из нее, решение моей проблемы заключалось в создании класс, который наследуется от System.Web.Services.Protocols.SoapExtension, зарегистрируйте этот класс в web.config, чтобы весь трафик маршрутизировался через этот класс и просматривался.

Ни одно из этих сообщений не отображалось в трассировках WCF, поэтому этого было недостаточно. Однако было полезно, что я выучил это, так что теперь я могу видеть все, что происходит между моим сервисным приложением wcf и веб-приложением.

В этой статье я понял это how-to-capture-soap- конверты-при-потреблении-веб-службы

4
ответ дан 8 December 2019 в 18:34
поделиться

Используйте WCF Tracing - он работает очень хорошо и поставляется с удобной утилитой просмотра трассировки .

Вы можете настроить множество параметров, но по сути, вам придется добавить что-то вроде этого в конфигурацию службы и клиента WCF:

<configuration>
   <system.diagnostics>
      <sources>
            <source name="System.ServiceModel" 
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="traceListener" 
                   type="System.Diagnostics.XmlWriterTraceListener" 
                   initializeData= "c:\log\Traces.svclog" />
            </listeners>
         </source>
      </sources>
   </system.diagnostics>
</configuration>

Есть множество "прослушивателей трассировки" из коробки - один записывает в консоль вывода в Visual Studio, этот здесь создает файлы XML, или вы можете хранить данные в таблице базы данных SQL Server - и весь механизм является расширяемым, вы также можете написать свои собственные прослушиватели трассировки!

См. Также здесь: Использование трассировки WCF и здесь FAQ по трассировке WCF для получения дополнительной информации.

7
ответ дан 8 December 2019 в 18:34
поделиться

Добавьте это в свой app.config:

<system.diagnostics>
<sources>
  <source name="System.ServiceModel.MessageLogging">
    <listeners>
      <add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="messages.svclog" />
     </listeners>
  </source>
</sources>

<system.serviceModel>
<diagnostics>
  <messageLogging
       logEntireMessage="true"
       logMalformedMessages="true"
       logMessagesAtServiceLevel="true"
       logMessagesAtTransportLevel="false"
       maxMessagesToLog="-1"/>
</diagnostics>

Он будет записывать все сообщения в messages.svclog. Затем вы можете просмотреть их.

2
ответ дан 8 December 2019 в 18:34
поделиться
Другие вопросы по тегам:

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