Tracering en logboekregistratie van berichten
In het voorbeeld TracingAndLogging ziet u hoe u tracering en logboekregistratie van berichten inschakelt. De resulterende traceringen en berichtlogboeken worden weergegeven met behulp van het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe).a0> Dit voorbeeld is gebaseerd op aan de slag.
Notitie
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
Tracering
Windows Communication Foundation (WCF) maakt gebruik van het traceringsmechanisme dat is gedefinieerd in de System.Diagnostics naamruimte. In dit traceringsmodel worden traceringsgegevens geproduceerd door traceringsbronnen die toepassingen implementeren. Elke bron wordt geïdentificeerd door een naam. Traceergebruikers maken traceringslisteners voor de traceringsbronnen waarvoor ze informatie willen ophalen. Als u traceringsgegevens wilt ontvangen, moet u een listener maken voor de traceringsbron. In WCF kunt u dit doen door de volgende code toe te voegen aan het configuratiebestand van de service of client door de traceringsbron switchValue
van het servicemodel in te stellen:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Zie de sectie Traceringsbron in het onderwerp Tracering configureren voor meer informatie over traceringsbronnen .
Activiteitentracering en doorgifte
Nadat ActivityTracing
de traceringsbronnen zijn ingeschakeld en propagateActivity
ingesteld true
system.ServiceModel
voor zowel de client als de service, bieden correlatie van traceringen binnen logische verwerkingseenheden (activiteiten), tussen activiteiten binnen eindpunten (via activiteitsoverdrachten) en over activiteiten die meerdere eindpunten omvatten (via doorgifte van activiteits-id's).
Deze drie mechanismen (activiteiten, overdrachten en doorgifte) kunnen u helpen de hoofdoorzaak van een fout sneller te vinden met behulp van het hulpprogramma Service Trace Viewer. Zie Service Trace Viewer gebruiken voor het weergeven van gecorreleerde traceringen en probleemoplossing voor meer informatie.
Het is mogelijk om de tracering uit te breiden die door het ServiceModel wordt geleverd door het maken van door de gebruiker gedefinieerde activiteitstraceringen. Door de gebruiker gedefinieerde activiteitentracering stelt de gebruiker in staat om traceringsactiviteiten te maken voor:
Groepeer traceringen in logische werkeenheden.
Activiteiten correleren via overdrachten en doorgifte.
Verminder de prestatiekosten van WCF-tracering (bijvoorbeeld de schijfruimtekosten van een logboekbestand).
Zie het voorbeeld voor het uitbreiden van tracering voor meer informatie over door de gebruiker gedefinieerde activiteitstracering .
Logboekregistratie van berichten
Logboekregistratie van berichten kan zowel op de client als op de service van een WCF-toepassing worden ingeschakeld. Als u logboekregistratie van berichten wilt inschakelen, moet u de volgende code toevoegen aan de client of service:
<configuration>
<system.serviceModel>
<diagnostics>
<!-- Enable Message Logging here. -->
<!-- log all messages received or sent at the transport or service model levels -->
<messageLogging logEntireMessage="true"
maxMessagesToLog="300"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
</system.serviceModel>
</configuration>
Wanneer een bericht wordt vastgelegd, is het traceringstype afhankelijk van of het wordt getraceerd op de client of de server. Een 'Toevoegen'-bericht dat naar een client wordt verzonden, wordt bijvoorbeeld getraceerd onder de categorie TransportWrite op de client, terwijl hetzelfde bericht wordt getraceerd onder de categorie TransportRead bij de service.
Configureer de traceerlist door de volgende code toe te voegen aan de System.Diagnostics sectie van het App.config-bestand van de client of het Web.config-bestand van de service:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Berichten worden vastgelegd in XML-indeling in de doelmap die is opgegeven in het configuratiebestand.
Notitie
Traceringsbestanden worden niet gemaakt zonder de logboekmap in eerste instantie te maken. Zorg ervoor dat de map C:\logs\ bestaat of geef een alternatieve logboekregistratiemap op in de listenerconfiguratie. Zie de eerste installatie-instructies aan het einde van dit document voor meer informatie.
Zie het onderwerp Berichtregistratie configureren voor meer informatie over logboekregistratie van berichten.
Het voorbeeld instellen, compileren en uitvoeren
Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Voordat u het voorbeeld tracering en berichtregistratie uitvoert, maakt u de map C:\logs\ voor de service om de .svclog-bestanden naar te schrijven. De naam van deze map wordt gedefinieerd in het configuratiebestand als het pad voor de traceringen en berichten die moeten worden geregistreerd en kan worden gewijzigd. Geef de gebruikersnetwerkservice schrijftoegang tot de logboekmap.
Als u de C#-, C++- of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.
Als u het voorbeeld wilt uitvoeren in een configuratie van één of meerdere computers, volgt u de instructies in Het uitvoeren van de Windows Communication Foundation-voorbeelden.