Как получить необработанные данные из запроса веб-службы? - PullRequest
3 голосов
/ 21 октября 2010

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

Я видел рекомендации: обрабатывать событие BeginRequest в HttpApplication.Но я не вижу, какое поле объекта «Запрос» содержит эти данные POST?

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Не имеет смысла хранить все данные поста запроса в объекте запроса, поскольку он может содержать загруженный файл и быть очень большим.

У меня есть два решения для вас:

1) Используйте Fiddler на сервере и локально просматривайте веб-сайт (используя имя сервера, а не localhost, поскольку Fiddler не может отображать запросы / ответы локального хоста)

2) Используйте System.Net tracing: http://support.microsoft.com/kb/947285

Вы также можете использовать WireShark для просмотра пакетов, но это не сохранит контекст ответа на запрос.

1 голос
/ 21 октября 2010

Смежный вопрос: Получение данных мыла RAW из Web-клиента, работающего в ASP.net

- Вы видели этот ответиспользуя трассировку?или этот с использованием SoapExtension

Я внес следующие изменения в web.cofig, чтобы получить конверт SOAP (запрос / ответ).Создает файл trace.log, в котором присутствует вся необходимая информация

<system.diagnostics>
<trace autoflush="true"/>
<sources>
  <source name="System.Net" maxdatasize="1024">
    <listeners>
      <add name="TraceFile"/>
    </listeners>
  </source>
  <source name="System.Net.Sockets" maxdatasize="1024">
    <listeners>
      <add name="TraceFile"/>
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/>
</sharedListeners>
<switches>
  <add name="System.Net" value="Verbose"/>
  <add name="System.Net.Sockets" value="Verbose"/>
</switches>
...