2009-07-24 22 views

risposta

18

Se si abilita la traccia del messaggio, è necessario ottenere tutti i dettagli di entrambe le chiamate (inclusa la rappresentazione XML del messaggio inviato) così come la risposta:

<system.diagnostics > 
    <sources> 
    <source 
     name="System.ServiceModel.MessageLogging" 
     switchValue="Information, ActivityTracing" > 
     <listeners> 
      <add name="yourTrace" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="C:\Logs\YourMessageLog.svclog"> 
      <filter type="" /> 
      </add> 
     </listeners> 
    </source> 
    </sources> 
    <trace autoflush="true" /> 
</system.diagnostics> 
<system.serviceModel> 
    <diagnostics> 
     <messageLogging 
      logMessagesAtTransportLevel="true" 
      logMessagesAtServiceLevel="false" 
      logMalformedMessages="true" 
      logEntireMessage="true" 
      maxSizeOfMessageToLog="65535000" maxMessagesToLog="500" /> 
    </diagnostics> 
</system.serviceModel> 

Questo dovrebbe creare un file chiamato "YourMessageLog.svclog" in una directory "C: \ Logs" (che deve esistere in anticipo!), e che è possibile visualizzare con il servizio WCF Trace Viewer.

Quello che vedrete qui è la rappresentazione XML del messaggio che esce e t la sua risposta è tornata: i tuoi parametri saranno stati inseriti nella tua struttura XML qui. E 'quello che stai cercando?

+0

Avevo provato a impostare il messaggio di registrazione in questo modo prima, ma lo stavo facendo sul server piuttosto che sul client, quindi non funzionava come previsto. Ciao per avermi indicato nel modo giusto :) –

+1

Il tipo per gli ascoltatori deve essere System.Diagnostics.XmlWriterTraceListener –

+0

Ciao Sto usando il mio servizio WCF DataContract e una funzione che ottengo int. PER FAVORE Devo vedere i parametri che sono passati al servizio WCF sul visualizzatore di tracce. Vedo solo l'hedear e il corpo? –