C'è un modo per abilitare/disabilitare la traccia/registrazione WCF per un endpoint perticolare senza modificare il web.config?Come abilitare le tracce WCF al livello di programmazione?
risposta
Per prima cosa è necessario accedere all'oggetto traccia per nome, come definito nel file .config. Per esempio:
TraceSource ts = new TraceSource("System.ServiceModel");
Quindi è possibile impostare il livello di filtro per tutti, nessuno o nulla in mezzo:
ts.Switch.Level = SourceLevels.Off; // nothing
ts.Switch.Level = SourceLevels.All; // everything
ts.Switch.Level = SourceLevels.Warning; //warning or higher
BTW - il TraceSource
classe è nel System.Diagnostics
spazio dei nomi, in modo da non dimenticare la appropriata dichiarazione using
.
Dove si desidera aggiungere questo codice? nella classe di servizio stessa? – Sat
sì - la classe di servizio deve avere accesso agli oggetti di traccia. – AFischbein
Questo ora funziona per me. –
Penso che non sia troppo diverso rispetto all'impostazione di altri listener ma non al 100%. Se si esamina: http://www.codeproject.com/Articles/36031/WCF-Tracing-FAQs#Come è possibile abilitare la traccia sugli oggetti WCF tracing –