través servicio net invocar consumir consume con wcf fiddler

wcf - servicio - fiddler web config



Cómo usar Fiddler para monitorear el servicio WCF (8)

Consolidar las advertencias mencionadas en los comentarios / respuestas para varios casos de uso.

En su mayoría, consulte http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNETApp

  • Comienza Fiddler antes de tu aplicación
  • En una aplicación de consola, es posible que no necesite especificar la dirección de proxyaddress :

    <proxy bypassonlocal="False" usesystemdefault="True" />

  • En una aplicación web / algo alojado en IIS, debe agregar la dirección proxyaddress :

    <proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" />

  • Cuando .NET realiza una solicitud (a través de un cliente de servicio o HttpWebRequest , etc.) HttpWebRequest siempre el proxy Fiddler para las URL que contienen localhost , por lo que debe usar un alias como el nombre de la máquina o inventar algo en su archivo ''hosts'' (que es por qué algo como localhost.fiddler o http://HOSTNAME funciona)
  • Si especifica la dirección proxyaddress , debe eliminarla de su configuración si Fiddler no está proxyaddress , o cualquier solicitud que haga su aplicación emitirá una excepción como:

    No se pudo establecer ninguna conexión porque la máquina de destino la rechazó activamente. 127.0.0.1:8888

  • No olvides usar transformaciones de configuración para eliminar la sección de proxy en producción

Tengo un servicio WCF que acepta un tipo complejo y devuelve algunos datos. Quiero usar Fiddler para ver cómo se ven las solicitudes entrantes al servicio. El cliente es la aplicación de la consola .net que utiliza un proxy de referencia del servicio. ¿Es esto posible con Fiddler? Soy nuevo en esta herramienta y solo la he usado en el pasado para publicar datos con el generador de solicitudes.


Debe agregar esto en su web.config

<system.net> <defaultProxy> <proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" /> </defaultProxy> </system.net>

  1. luego, inicie Fiddler en la máquina WEBSERVER.
  2. Haga clic en Herramientas | Fiddler Options => Connections => ajusta el puerto como 8888. (permite el control remoto si lo necesitas)
  3. Ok, luego desde el menú de archivo, captura el tráfico.

Eso es todo, pero no se olvide de eliminar las líneas web.config después de cerrar el violín, porque si no lo hace, se producirá un error.

Referencia: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy


Esto es sencillo si tiene control sobre el cliente que está enviando las comunicaciones. Todo lo que necesita hacer es configurar el HttpProxy en la clase de servicio del lado del cliente.

Hice esto, por ejemplo, para rastrear un cliente de servicio web que se ejecuta en un teléfono inteligente. Configuré el proxy en esa conexión del lado del cliente a la IP / puerto de Fiddler, que se estaba ejecutando en una PC en la red. La aplicación de teléfono inteligente luego envió toda su comunicación saliente al servicio web, a través de Fiddler.

Esto funcionó perfectamente.

Si su cliente es un cliente de WCF, consulte estas preguntas y respuestas sobre cómo configurar el proxy.

Incluso si no tiene la capacidad de modificar el código de la aplicación del lado del cliente, es posible que pueda configurar el proxy administrativamente, dependiendo de la pila de servicios web que use su cliente.


Fiddler escucha las solicitudes salientes en lugar de las recibidas, por lo que no podrá controlar todas las solicitudes que ingresen a su servicio mediante el uso de Fiddler.

Lo mejor que obtendrás con Fiddler es la posibilidad de ver todas las solicitudes a medida que las genera la aplicación de tu consola (suponiendo que la aplicación genere solicitudes web en lugar de usar otra canalización).

Si desea una herramienta que sea más poderosa (pero más difícil de usar) que le permita monitorear TODAS las solicitudes entrantes, debe verificar WireShark.

Editar

Estoy corregido. ¡Gracias a Eric Law por publicar las instrucciones para http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy !


Solo tuve este problema, lo que funcionó para mí fue usar localhost.fiddler:

<endpoint address="http://localhost.fiddler/test/test.svc" binding="basicHttpBinding" bindingConfiguration="customBinding" contract="test" name="customBinding"/>


Tan simple, todo lo que necesita es cambiar la dirección en el cliente de configuración: en lugar de ''localhost'' cambie al nombre de la máquina o IP


Utilicé la herramienta wire shark para monitorear las llamadas de servicio desde Silverlight App en el navegador al servicio. prueba el link da información clara

Le permite controlar todo el contenido de solicitud y respuesta.


Seguimiento / Diagnóstico estándar de WCF

Si por alguna razón no puede conseguir que Fiddler funcione, o prefiere registrar las solicitudes de otra manera, otra opción es usar la funcionalidad de seguimiento WCF estándar. Esto producirá un archivo que tiene un buen visor.

Documentos

Consulte https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/tracing-and-message-logging

Configuración

Agregue lo siguiente a su configuración, asegúrese de que c:/logs exista, reconstruya y realice solicitudes:

<system.serviceModel> <diagnostics> <!-- Enable Message Logging here. --> <!-- log all messages received or sent at the transport or service model levels --> <messageLogging logEntireMessage="true" maxMessagesToLog="300" logMessagesAtServiceLevel="true" logMalformedMessages="true" logMessagesAtTransportLevel="true" /> </diagnostics> </system.serviceModel> <system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true"> <listeners> <add name="xml" /> </listeners> </source> <source name="System.ServiceModel.MessageLogging"> <listeners> <add name="xml" /> </listeners> </source> </sources> <sharedListeners> <add initializeData="C:/logs/TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml" /> </sharedListeners> <trace autoflush="true" /> </system.diagnostics>