Pergunta

Visual Studio faz chamar um serviço web fácil, tentando descobrir o que está acontecendo nos bastidores é difícil.

Como posso ver o XML real gerada do meu aplicativo .Net ao fazer uma chamada para um serviço web?

Outras dicas

Exemplo MSDN código que implementa um TraceExtension para o sabão; Você pode usar como está ou modificar para entrar o que quiser (eu usei um DB e manteve-o não só para a depuração, mas para arquivar toda a comunicação para mais tarde).

Para chamadas de serviços web SOAP que eu encontrei SoapUI para ser extremamente útil. Ele pode se conectar a um WSDL para obter as definições de métodos, criar envelopes esqueleto para invocar esses métodos, e você pode ver o resultado de pleno direito após a invocação.

fora do Visual Studio, você pode usar a ferramenta Fiddler para ver exatamente o que está contido em pedidos e respostas.

Dentro Visual Studio, uma coisa que você pode fazer é escrever um DataSet para um arquivo.

myDataSet.WriteXml(filename);

Aqui está outro exemplo de como você pode fazer isso dentro do Visual Studio. Tudo isso faz é pegar a resposta do serviço web e salvá-lo em um arquivo que você especificar:

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")

A sugestão de usar Fiddler foi o suficiente para me para obter o meu TI equipe a bordo. Eles já tinham uma cópia de um programa semelhante WireShark instalado no servidor web.

Não sendo muito savvy rede, inicialmente eu pensei que eu poderia assistir para solicitações feitas do meu PC para o webservice. Isso não funcionou. Monitorando solicitações como eles entraram no webserver fez me dar a stucture do http cabeçalho eo envelope de sabão.

Obrigado por todas as respostas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top