Visual Studio упрощает вызов веб-службы, пытаясь выяснить, что происходит под прикрытием.
Как я могу увидеть фактический XML, сгенерированный из моего приложения .Net при звонке в веб-службу?
инструменты, такие как tcptrace или Fiddler могут помочь.
несколько ссылок на устранение неполадок:
Отслеживание WCF с TcpTrace
Использование Fiddler и Excel 07 для отладки веб-сервисов
Fiddler может облегчить отладку
MSDN Пример кода , который реализует TraceExtension для SOAP; Вы можете использовать как есть или изменить, чтобы войти в систему как угодно (я использовал БД и сохранил ее не только для отладки, но и для архивирования всей связи на будущее).
Для вызовов веб-службы SOAP я обнаружил, что SoapUI чрезвычайно полезен. Он может подключаться к WSDL для получения определений методов, создавать скелеты-конверты для вызова этих методов, и вы можете увидеть полноценный результат после вызова.
Вот еще один пример того, как вы можете сделать это в Visual Studio. Все, что нужно сделать, это получить ответ от веб-службы и сохранить его в указанном вами файле:
Dim url As String = "http://web.service.com/" Dim request As WebRequest = WebRequest.Create(url) Dim response As WebResponse = request.GetResponse() Dim stream As Stream = response.GetResponseStream() Dim xmlDoc As XmlDocument = New XmlDocument xmlDoc.Load(stream) xmlDoc.Save("C:\Temp\foo.xml")
За пределами Visual Studio вы можете использовать инструмент Fiddler, чтобы точно видеть, что содержится в запросах и ответах.
Внутри Visual Studio вы можете сделать одну вещь - записать DataSet в файл.
myDataSet.WriteXml(filename);
Предложение использовать Fiddler было достаточным для того, чтобы моя ИТ-команда была на борту. У них уже была копия аналогичной программы WireShark , установленной на веб-сервере.
Не слишком разбираясь в сети, я изначально думал, что смогу отслеживать запросы от моего ПК к веб-сервису. Это не сработало. Мониторинг запросов по мере их поступления на веб-сервер дал мне структуру заголовка http и мыльного конверта.
Спасибо за все ответы.