DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 105, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

[WCF] Logging e Tracing dei messaggi

WCF fornisce un insieme di funzionalità per il logging (disabilitate di default) per quanto riguarda le comunicazioni tra applicazioni client e server, al fine di facilitare il debugging soprattutto in scenari distribuiti in cui la diagnostica non è così immediata. Un metodo molto semplice e veloce per generare un log contenente le informazioni di diagnostica circa i messaggi in entrata ed in uscita è quello di specificare da configurazione un listener al trace source di default System.ServiceModel.MessageLogging e quindi impostare gli attributi dell'elemento messageLogging della sezione diagnostics. In particolare, è bene ricordare come sia possibile operare un log a diversi livelli di comunicazione: a livello di messaggio, a livello di trasporto ed a livello di servizio.
A tal proposito, ecco un esempio di configurazione che permette di tracciare messaggi a livello di servizio a partire da un file di log creato automaticamente tramite un XmlWriterTraceListener  che automaticamente converte le informazioni di tracing e debugging in uno stream XML da persistere su file system.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 
<system.diagnostics>
   
<sources>
     
<source name="System.ServiceModel.MessageLogging">
       
<listeners>
          
<add name="myWCFmessages" type="System.Diagnostics.XmlWriterTraceListener"
               
initializeData="C:\WCFLogs\messages.svclog"></add>
       
</listeners>
     
</source>
   
</sources>
   
<trace autoflush="true"></trace>   
 
</system.diagnostics>
 
<system.serviceModel>   
  
<diagnostics>
    
<messageLogging logEntireMessage="true" logMessagesAtServiceLevel="true"
                    
logMessagesAtTransportLevel="false"
                    
maxMessagesToLog="100" logMalformedMessages="false"
                    
maxSizeOfMessageToLog="2000">       
    
</messageLogging>
  
</diagnostics>
 
</system.serviceModel>
</configuration>


A questo punto, uno strumento molto potente che possiamo utilizzare per analizzare i messaggi è il  Service trace viewer (SvcTraceViewer.exe), il quale ci aiuta a visualizzare e filtrare i messaggi anche in scenari in cui si richiede una correlazione tra trace diversi. Veramente molto utile :)


 

Technorati tags:  WCF

Print | posted on martedì 4 marzo 2008 02:56 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET