utilizar transito tramite tiene soat seguro saber requisitos que procedimiento por patente para como cobrar buscar automotriz accidente c# web-services soap

c# - transito - soap requisitos



En C#, ¿cómo capturaría el SOAP utilizado en una llamada al servicio web? (6)

Tengo una aplicación C # que es un cliente de un servicio web. Uno de mis requisitos es permitir la captura del SOAP que envío, de modo que si hay un problema, puedo corregir el error o demostrar que el problema está en el servicio al que estoy llamando.

Mi clase de servicio de proxy WebReference deriva de System.Web.Services.Protocols.SoapHttpClientProtocol como de costumbre. Si tuviera una varita mágica, haría que esta clase base implementara un evento OnPost que pudiera manejar para escribir el SOAP en mis registros y continuar.

Además de ejecutar un rastreador de paquetes como WireShark, ¿hay alguna manera fácil de obtener este nivel de registro?



Si la aplicación se está ejecutando en su casilla local y el servicio web no está haciendo nada funky, puede usar Fiddler. Encienda IE, ejecute Fiddler, y verá que sus llamadas al servicio web también pasan por el proxy de violinista.

Acabo de usar esto esta mañana para hacer casi lo mismo. Tenía que demostrar que los datos que enviaba mi servicio web no estaban mal.


Por alguna razón, Fiddler no mostraba mis llamadas de servicio local cuando usaba el servidor de desarrollo ASP.NET que viene con Visual Studio. Para evitar esto, cambié el servicio web Url en tiempo de ejecución para que fuera el puerto Fiddler, solo para capturar el mensaje SOAP.

Puede hacerlo desde la ventana Inmediato, por ejemplo:

myservice.Url = "localhost: 8888" (o cualquier puerto en el que tenga Fiddler)

Usé el cliente SoapUI para probar las respuestas.


Sólo "." agregue la dirección en su punto final después de "localhost". Me gusta esto:

<endpoint address="http://localhost.:8868/FEInvoice.asmx" binding="basicHttpBinding" bindingConfiguration="FEInvoice_Test" contract="EInvoiceIntegration.FEInvoiceSoap" name="FEInvoice_Test" />


Para ver este tráfico en el violinista usa el siguiente código:

mySoapHttpClientProtocol.Url = mySoapHttpClientProtocol.Url.Replace("localhost", "localhost.fiddler");

De lo contrario, el servidor web integrado de Visual Studio omitirá todos los proxies.