Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
EtwTracking-exemplet visar hur du aktiverar WF-spårning (Windows Workflow Foundation) på en arbetsflödestjänst och genererar spårningshändelserna i Händelsespårning för Windows (ETW). För att generera poster för arbetsflödesspårning i ETW använder exemplet deltagaren för ETW-spårning (EtwTrackingParticipant).
Arbetsflödet i exemplet tar emot en begäran, tilldelar det reciprokta värdet av indatan till indatavariabeln och returnerar det reciprokta värdet till klienten. När indata är 0 uppstår ett ohanterat nolldivideringsundantag som gör att arbetsflödet avbryts. När spårningen är aktiverad genereras felspårningsposten till ETW, vilket kan hjälpa dig att felsöka felet senare. ETW-spårningsdeltagaren är konfigurerad med en spårningsprofil för att prenumerera på spårningsregister. Spårningsprofilen definieras i filen Web.config och tillhandahålls som en konfigurationsparameter för ETW-spårningsdeltagaren. ETW-spårningsdeltagaren konfigureras i Web.config-filen för arbetsflödestjänsten och tillämpas på tjänsten som ett tjänstbeteende. I det här exemplet visuar du spårningshändelser i händelseloggen med Händelsevisaren.
Information om arbetsflödesspårning
Windows Workflow Foundation tillhandahåller en spårningsinfrastruktur för att spåra körningen av en arbetsflödesinstans. Spårningens körtid skapar en arbetsflödesinstans för att sända ut händelser relaterade till arbetsflödets livscykel, händelser från aktiviteter i arbetsflödet och anpassade händelser. I följande tabell beskrivs de primära komponenterna i spårningsinfrastrukturen.
| Komponent | Beskrivning | 
|---|---|
| Spåra körningstid | Tillhandahåller infrastrukturen för att skapa spårningsregister. | 
| Spåra deltagare | Får tillgång till spårningsregister. .NET Framework 4.6.1 levereras med en spårningsdeltagare som skriver spårningsposter som Event Tracing for Windows (ETW)-händelser. | 
| Spårningsprofil | En filtreringsmekanism som gör att en spårningsdeltagare kan prenumerera på en delmängd av spårningsposterna som genereras från en arbetsflödesinstans. | 
I följande tabell beskrivs spårningsposterna som arbetsflödeskörningen genererar.
| Spårningslogg | Beskrivning | 
|---|---|
| Spåruppgifter för arbetsflödesinstans. | Beskriver livscykeln för arbetsflödesinstansen. Till exempel genereras en instanspost när arbetsflödet startar eller slutförs. | 
| Register över spårning av aktivitetstillstånd. | ** Detaljer om aktivitetsutförande. Dessa poster anger tillståndet för en arbetsflödesaktivitet, till exempel när en aktivitet schemaläggs eller när aktiviteten slutförs eller när ett fel utlöses. | 
| Återupptagningspost för bokmärken. | Genereras när ett bokmärke i en arbetsflödesinstans återupptas. | 
| Anpassade spårningsloggar. | En arbetsflödesförfattare kan skapa anpassade spårningsloggar och utfärda dem inom en anpassad aktivitet. | 
| ActivityScheduledRecord | Loggposten genereras när en aktivitet schemalägger en annan aktivitet. | 
| FaultPropagationRecord | Den här loggposten genereras när ett fel sprids från en aktivitet. | 
| CancelRequestedRecord | Den här posten genereras när en aktivitet avbryts av en annan aktivitet. | 
Spårningsdeltagaren prenumererar på en delmängd av de avgivna spårningsposterna med hjälp av spårningsprofiler. En spårningsprofil innehåller spårningsfrågor som tillåter prenumerera på en specifik typ av spårningsposttyp. Spårningsprofiler kan anges i kod eller i konfigurationen.
Så här använder du det här exemplet
Öppna EtwTrackingParticipantSample.sln lösningsfilen med Visual Studio.
Tryck på CTRL+SKIFT+B för att skapa lösningen.
Tryck på F5 för att köra lösningen.
Som standard lyssnar tjänsten på port 53797 (
http://localhost:53797/SampleWorkflowService.xamlx).Använd Utforskaren för att öppna WCF-testklienten.
WCF-testklienten (WcfTestClient.exe) finns i <mappen Visual Studio-installationsmapp>\Common7\IDE\.
Standardmappen för Visual Studio-installation är C:\Program Files\Microsoft Visual Studio 10.0.
I WCF-testklienten väljer du Lägg till tjänst på menyn Arkiv .
Lägg till slutpunktsadressen i indatarutan. Standardvärdet är
http://localhost:53797/SampleWorkflowService.xamlx.Öppna programmet Loggboken.
Innan du anropar tjänsten startar du Händelselogg på Start-menyn, väljer Kör och skriver in
eventvwr.exe. Kontrollera att händelseloggen lyssnar efter spårningshändelser som genereras från arbetsflödestjänsten.I trädvyn i Loggboken går du till Loggboken, Program och tjänstloggar och Microsoft. Högerklicka på Microsoft och välj Visa och sedan Visa analys- och felsökningsloggar för att aktivera analys- och felsökningsloggarna
Kontrollera att alternativet Visa analys- och felsökningsloggar är markerat.
I trädvyn i Loggboken navigerar du till Loggboken, Program och tjänstloggar, Microsoft, Windows, Programserverprogram. Högerklicka på Analys och välj Aktivera logg för att aktivera analysloggen .
Testa tjänsten med WCF-testklienten genom att
GetDatadubbelklicka på .Då öppnas
GetDatametoden. Begäran accepterar en parameter och ser till att värdet är 0, vilket är standardvärdet.Klicka på , och Anropa.
Observera de händelser som genereras från arbetsflödet.
Växla tillbaka till Loggboken och gå till Loggboken, Program och tjänstloggar, Microsoft, Windows, Programserverprogram. Högerklicka på Analys och välj Uppdatera.
Arbetsflödeshändelserna visas i händelsevisaren. Observera att arbetsflödeskörningshändelser visas och att en av dem är ett ohanterat undantag som motsvarar felet i arbetsflödet. Dessutom genereras en varningshändelse från arbetsflödesaktiviteten, vilket indikerar att aktiviteten utlöser ett fel.
Upprepa steg 9 och 10 med andra indata än 0, så att inget fel utlöses.
Med spårningsprofiler kan du prenumerera på händelser som emitteras av körmiljön när tillståndet för en arbetsflödesinstans ändras. Beroende på dina övervakningskrav kan du skapa en profil som är mycket enkel, som prenumererar på en liten uppsättning ändringar på hög nivå i ett arbetsflöde. Å andra sidan kan du skapa en mycket exakt profil vars utdata är tillräckligt omfattande för att rekonstruera körningen senare. Exemplet visar de händelser som genereras från arbetsflödeskörningen till ETW med hjälp av HealthMonitoring Tracking Profile, som genererar en liten uppsättning händelser. En annan profil som genererar fler arbetsflödesspårningshändelser finns också i Web.config som heter Troubleshooting Tracking Profile. När .NET Framework 4.6.1 har installerats konfigureras en standardprofil med ett tomt namn i filen Machine.config. Den här profilen används av konfigurationen för ETW-spårningsbeteende när inget profilnamn eller ett tomt profilnamn har angetts.
Profilen för spårning av hälsoövervakning genererar arbetsflödesinstansposter och aktivitetsfelspridningsposter. Den här profilen skapas genom att följande spårningsprofil läggs till i en Web.config konfigurationsfil.
<tracking>
  <profiles>
    <trackingProfile name="HealthMonitoring Tracking Profile">
      <workflow activityDefinitionId="*">
        <workflowInstanceQueries>
          <workflowInstanceQuery>
            <states>
              <state name="Started"/>
              <state name="Completed"/>
              <state name="Aborted"/>
              <state name="UnhandledException"/>
            </states>
          </workflowInstanceQuery>
        </workflowInstanceQueries>
        <faultPropagationQueries>
          <faultPropagationQuery faultSourceActivityName ="*" faultHandlerActivityName="*"/>
        </faultPropagationQueries>
      </workflow>
    </trackingProfile>
  </profiles>
</tracking>
Profilen kan ändras genom att ändra konfigurationen EtwTrackingParticipant till följande.
<behaviors>
  <serviceBehaviors>
    <behavior>
      <etwTracking profileName="HealthMonitoring Tracking Profile"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
Att städa upp (valfritt)
Öppna Händelsevisaren.
Gå till Händelsehanteraren, Program och tjänstloggar, Microsoft, Windows, Applikationsserver-Applikationer. Högerklicka på Analys och välj Inaktivera logg.
Gå till Händelsehanteraren, Program och tjänstloggar, Microsoft, Windows, Applikationsserver-Applikationer. Högerklicka på Analys och välj Rensa logg.
Välj alternativet Rensa för att rensa händelserna.
Känt problem
Anmärkning
Det finns ett känt problem i Händelseloggen där den kan misslyckas med att avkoda ETW-händelser. Du kan se ett felmeddelande som ser ut så här.
Det går inte att hitta beskrivningen för händelse-ID <id> från källan Microsoft-Windows-Application Server-Applications. Antingen är komponenten som genererar den här händelsen inte installerad på den lokala datorn eller så är installationen skadad. Du kan installera eller reparera komponenten på den lokala datorn.
Om det här felet uppstår klickar du på Uppdatera i åtgärdsfönstret. Händelsen ska nu avkodas korrekt.