WCF Llamada no se muestra en Fiddler2

Tengo un simple Servicio de WCF con basicHttp de unión. El servicio está alojado localmente (Win7 portátil) en IIS7. Soy capaz de navegar por el servicio en: http://localhost/musicstore/musicstore.svc
(puerto 80)

He desarrollado un sencillo formulario de windows del cliente de la aplicación para llamar al servicio. Funciona bien, pero realmente me gustaría ver el mensaje de llamada /respuesta a través de Fiddler2. Fiddler2 estará feliz de informe de tráfico como navegar por la web, así que no puede entender por qué no recoger este WCF llamar?

Hay otra manera para ver los datos de WCF llamadas. Tal vez hay una Herramienta de Microsoft?

La configuración de cliente es:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>

    <client>
      <endpoint address="http://localhost/musicstore/musicstore.svc"
        binding="basicHttpBinding" bindingConfiguration="" contract="MusicStore.IMusicStore"
        name="BasicHttp" />
    </client>
  </system.serviceModel>
</configuration>

El servicio de configuración es:

<services>
   <service behaviorConfiguration="MusicStoreBehavior" name="MusicStore">
    <endpoint address="" binding="basicHttpBinding" contract="IMusicStore">
     <identity>
      <dns value="localhost" />
     </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
   </service>
  </services>

OriginalEl autor Rob Bowman | 2011-05-23

4 Kommentare

  1. 15

    La forma más sencilla de ver lo que WCF está haciendo es convertir a la WCF del propio registro. Usted puede hacer esto mediante la edición de su web.config y añadir

    <system.diagnostics>
      <sources>
          <source name="System.ServiceModel.MessageLogging">
            <listeners>
                     <add name="messages"
                     type="System.Diagnostics.XmlWriterTraceListener"
                     initializeData="c:\logs\messages.svclog" />
              </listeners>
          </source>
        </sources>
    </system.diagnostics>
    
    <system.serviceModel>
      <diagnostics>
        <messageLogging 
             logEntireMessage="true" 
             logMalformedMessages="false"
             logMessagesAtServiceLevel="true" 
             logMessagesAtTransportLevel="false"
             maxMessagesToLog="3000"
             maxSizeOfMessageToLog="2000"/>
      </diagnostics>
    </system.serviceModel>

    MSDN tiene más información detallada sobre lo que puede configurar. Usted puede ver los registros en el Visor De Seguimiento De Servicio.

    Que funciona de maravilla! Gracias.

    OriginalEl autor blowdart

  2. 8

    Hay muchos duplicados de esta pregunta, muchos de los cuales tienen respuestas correctas. Usted debe utilizar http://localhost.fiddler/ como el destino y .La RED correctamente proxy de la solicitud. El violinista va a cambiar «localhost.fiddler» a «localhost» antes de pasar el pedido.

    OriginalEl autor EricLaw

  3. 3

    Puede modificar su cliente configfile:

    <configuration>
      <system.net>
        <defaultProxy>
          <proxy bypassonlocal="false" usesystemdefault="true" />
        </defaultProxy>
      </system.net>
    </configuration>

    O usted podría utilizar:

    GlobalProxySelection.Select = new WebProxy("127.0.0.1", 8888);

    De: El violinista sitio

    hmm, eso no parece hacer ninguna diferencia 🙁
    +1 Fiddler actúa como un proxy web, así que cualquier cosa que no uso el proxy no serán detectados. WCF, por defecto, no.
    La url proporcionada, otras opciones para conseguir este escenario de trabajo están disponibles

    OriginalEl autor Dutch Nico

  4. 0

    Tuve el mismo problema y lo solucionó de esta manera:

    1. Alojar el servicio en IIS express
    2. Agregar un enlace a su externas ip de la LAN utilizando applicationhost.config de IISExpress en Documentos/IISExpress/config
    3. Utilizar la configuración de proxy de holandés nico (ver más abajo)

    4. Asegúrese de que su aplicación de cliente utiliza su ‘externo’ ip. Así 192.168.1.X en lugar de localhost.

    5. Usted podría tener que cambiar su WCF de configuración para permitir que varios enlaces para asp.net 4.0

      <serviceHostingEnvironment multiplesitebindingsenabled="true"/>

    OriginalEl autor Gluip

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea