2009-12-15 22 views
5

Soy muy nuevo en los mensajes WCF y SOAP, pero he logrado reunir un cliente razonablemente bueno que estoy usando para descargar noticias de una organización de medios. He generado clases de proxy que obviamente abstraen mucho y significan que básicamente estoy simplemente creando objetos, llamando a métodos e iterando a través de los resultados.Ver la solicitud XML sin formato

Mi problema es que tengo ejemplos en XML sin formato de cómo deberían ser las llamadas al servicio web y quiero poder "compararlas" con las llamadas que estoy realizando. Básicamente, debo asegurarme de que las llamadas que realizo sean las mismas que las de los archivos XML de ejemplo para fines de prueba.

¿Tiene sentido lo que estoy pidiendo o me estoy equivocando? Por favor, avíseme si hay alguna información necesaria que haya omitido, podría apuntar para los párrafos, pero no estoy seguro de qué información es relevante.

Respuesta

2

¿Ha utilizado la herramienta Service Trace Viewer de Microsoft? This MSDN page le dará los detalles sobre cómo usarlo.

+0

Gracias por la respuesta, slugster. Voy a echar un vistazo a esto y volveré a publicar cómo voy. – dave

2

La respuesta de stock para esta fiddler es utilizar como proxy - esto le permitirá ver los salientes y mensajes entrantes entre el cliente y el servicio.

aún no se puede hablar por experiencia personal, sin embargo los miembros del equipo de desarrollo para mí (en una vida anterior) tienen - con razón - codificado nuestras envolturas de servicios con soporte incorporado para el uso de un proxy explícitamente para simplificar el uso de violinista.

+0

Gracias por la respuesta. El problema con el uso de Fiddler es que se trata de un servicio web seguro de SSL por lo que hay problemas de que el servicio web no le gusta el certificado de Fiddler debido a que se trata de una CA no reconocida. Intenté anular la validación del certificado del servidor, pero está sucediendo algo con el servicio web que no le gusta en absoluto. La respuesta puede ser simplemente seguir jugando con este – dave

+0

¿Has probado los encabezados HTTP en vivo, un complemento de Firefox? No estoy seguro si es compatible con CA, pero vale la pena intentarlo. –

10

Puede usar el seguimiento de WCF para registrar los mensajes XML sin formato. El siguiente es .config permite el seguimiento de WCF con el registro de mensajes en bruto:

<configuration> 
    <system.serviceModel> 
    <diagnostics> 
     <messageLogging maxMessagesToLog="30000" 
       logEntireMessage="true" 
       logMessagesAtServiceLevel="true" 
       logMalformedMessages="true" 
       logMessagesAtTransportLevel="true"> 
     </messageLogging> 
    </diagnostics> 
    </system.serviceModel> 
    <system.diagnostics> 
    <sources> 
     <source name="System.IdentityModel" switchValue="Verbose" logKnownPii="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- Log all messages in the 'Messages' tab of SvcTraceViewer. --> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- ActivityTracing and propogateActivity are used to flesh out the 'Activities' tab in 
      SvcTraceViewer to aid debugging. --> 
     <source name="System.ServiceModel" switchValue="Error, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <!-- This records Microsoft.IdentityModel generated traces, including exceptions thrown 
      from the framework. --> 
     <source name="Microsoft.IdentityModel" switchValue="Warning"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.e2e" /> 
    </sharedListeners> 
    <trace autoflush="true" /> 
    </system.diagnostics> 
</configuration> 

Puede leer más sobre WCF Rastreo de MSDN: Configuring Tracing.

Microsoft proporciona un Service Trace Viewer Tool para leer archivos .svclog.

Asegúrese de que el servicio pueda escribir en la ruta definida en initializeData.

0

no sé mucho acerca de WCF, pero puede redirigir su conexión a un servidor web diferente de la red que registra el cuerpo en alguna parte. Esto le permitiría ver exactamente lo que está enviando, pero requeriría algún trabajo de infraestructura. Esto podría ser un servidor web ejecutándose en su máquina de desarrollo.

Cuestiones relacionadas