Sdílet prostřednictvím


Sledování událostí v trasování událostí ve Windows

Ukázka EtwTracking ukazuje, jak povolit sledování Windows Workflow Foundation (WF) na workflowové službě a emitovat sledovací události v trasování událostí pro Windows (ETW). K vygenerování záznamů sledování pracovního postupu do ETW se v ukázce používá účastník sledování ETW (EtwTrackingParticipant).

Pracovní postup v ukázce obdrží požadavek, přiřadí reciprokou hodnotu vstupních dat vstupní proměnné a vrátí ji zpět klientovi. Pokud jsou vstupní data 0, dojde k neošetřené výjimce dělení nulou, která způsobí přerušení pracovního postupu. Při povoleném sledování je záznam chyb odeslán do ETW, což může být užitečné při pozdějším řešení chyby. Modul sledování ETW je nakonfigurován profilem sledování, který odebírá záznamy sledování. Profil sledování je definován v souboru Web.config a je poskytován jako konfigurační parametr účastníkovi sledování ETW (Trasování událostí pro Windows). Účastník sledování ETW je konfigurován v souboru Web.config služby pracovního postupu a aplikuje se na službu jako chování služby. V této ukázce zobrazíte události sledování v protokolu událostí pomocí Prohlížeče událostí.

Podrobnosti sledování pracovního postupu

Windows Workflow Foundation poskytuje sledovací infrastrukturu pro sledování provádění instance pracovního postupu. Běhové prostředí sledování vytvoří instanci pracovního postupu pro vydávání událostí souvisejících s životním cyklem pracovního postupu, událostí z činností v pracovním postupu a vlastních událostí. Následující tabulka obsahuje podrobnosti o primárních součástech infrastruktury sledování.

Součást Popis
Sledování runtime Poskytuje infrastrukturu pro generování záznamů sledování.
Sledování účastníků Přístup k záznamům sledování. Rozhraní .NET Framework 4.6.1 se dodává s účastníkem sledování, který zapisuje záznamy sledování jako události trasování ve Windows (ETW).
Profil sledování Mechanismus filtrování, který umožňuje sledování účastníkem přihlásit se k odběru podmnožiny záznamů sledování vydaných z instance pracovního postupu.

Následující tabulka podrobně popisuje záznamy sledování, které modul runtime pracovního postupu generuje.

Záznam sledování Popis
Záznamy o sledování pracovního postupu instance Popisuje životní cyklus instance pracovního postupu. Například záznam instance se vygeneruje při spuštění nebo dokončení pracovního postupu.
Záznamy sledování stavu aktivity Podrobnosti o provádění aktivit Tyto záznamy označují stav aktivity pracovního postupu, například když je aktivita naplánována, když je aktivita dokončena nebo když dojde k chybě.
Záznam o obnovení záložky Vygeneruje se při každém obnovení záložky v instanci pracovního postupu.
Vlastní záznamy sledování Autor pracovního postupu může vytvářet vlastní záznamy sledování a generovat je v rámci vlastní aktivity.
ActivityScheduledRecord Tento záznam se vygeneruje, když aktivita naplánuje jinou aktivitu.
FaultPropagationRecord Tento záznam se vygeneruje při šíření chyby z aktivity.
CancelRequestedRecord Tento záznam se vygeneruje, když je aktivita zrušena jinou aktivitou.

Účastník sledování se přihlásí k odběru podmnožiny vygenerovaných záznamů sledování pomocí profilů sledování. Profil sledování obsahuje sledovací dotazy, které umožňují přihlášení k odběru konkrétního typu záznamu sledování. Profily sledování je možné zadat v kódu nebo v konfiguraci.

Použití této ukázky

  1. V sadě Visual Studio otevřete soubor řešení EtwTrackingParticipantSample.sln.

  2. Řešení sestavíte stisknutím kombinace kláves CTRL+SHIFT+B.

  3. Řešení spustíte stisknutím klávesy F5.

    Ve výchozím nastavení služba naslouchá na portu 53797 (http://localhost:53797/SampleWorkflowService.xamlx).

  4. V Průzkumníku souborů otevřete testovacího klienta WCF.

    Testovací klient WCF (WcfTestClient.exe) se nachází ve <složce> instalace sady Visual Studio\Common7\IDE\.

    Výchozí instalační složka sady Visual Studio je C:\Program Files\Microsoft Visual Studio 10.0.

  5. V testovacím klientovi WCF vyberte v nabídce Soubor možnost Přidat službu.

    Do vstupního pole přidejte adresu koncového bodu. Výchozí hodnota je http://localhost:53797/SampleWorkflowService.xamlx.

  6. Otevřete aplikaci Prohlížeč událostí.

    Před vyvoláním služby spusťte Prohlížeč událostí z nabídky Start , vyberte Spustit a zadejte eventvwr.exe. Ujistěte se, že protokol událostí naslouchá událostem sledování emitovaným ze služby pracovního postupu.

  7. Ve stromovém zobrazení prohlížeče událostí přejděte do Prohlížeče událostí, protokolů aplikací a služeb a Společnosti Microsoft. Klikněte pravým tlačítkem myši na Microsoft a vyberte Zobrazit a pak zobrazit analytické a ladicí protokoly , aby se povolily analytické a ladicí protokoly.

    Ujistěte se, že je zaškrtnutá možnost Zobrazit analytické protokoly a protokoly ladění.

  8. Ve stromovém zobrazení v Prohlížeči událostí přejděte do Prohlížeče událostí, protokolů aplikací a služeb, Microsoft, Windows, Application Server-Applications. Klikněte pravým tlačítkem na Analytický a vyberte Povolit protokol, aby byl protokol Analytický povolen.

  9. Otestujte službu pomocí testovacího klienta WCF dvojitým kliknutím na GetData.

    Tím se otevře GetData metoda. Požadavek přijímá jeden parametr a zajišťuje, že hodnota je 0, což je výchozí hodnota.

    Klikněte na pro spuštění.

  10. Sledujte události generované z pracovního postupu.

    Přepněte zpět do Prohlížeče událostí a přejděte na Prohlížeč událostí, protokoly aplikací a služeb, Microsoft, Windows, Application Server-Applications. Klikněte pravým tlačítkem myši na Analýzu a vyberte Aktualizovat.

    Události pracovního postupu se zobrazují v prohlížeči událostí. Všimněte si, že se zobrazují události provádění pracovního postupu a že jedním z nich je neošetřená výjimka, která odpovídá chybě v pracovním postupu. Z aktivity pracovního postupu je také emitována upozorňující událost, která naznačuje, že aktivita způsobuje chybu.

  11. Opakujte kroky 9 a 10 se vstupem dat kromě 0, aby se nevyvolá žádná chyba.

Sledování profilů umožňuje přihlásit se k odběru událostí, které jsou generovány modulem runtime při změně stavu instance pracovního postupu. V závislosti na požadavcích na monitorování můžete vytvořit profil, který je velmi nepodrobný, a monitoruje malou sadu změn vysoké úrovně stavu v pracovním postupu. Na druhou stranu můžete vytvořit velmi přesný profil, jehož výstup je dostatečně bohatý, aby bylo možné později rekonstruovat provádění. Ukázka demonstruje události emitované z prostředí runtime pracovního postupu do ETW pomocí HealthMonitoring Tracking Profile, který emituje malou sadu událostí. V Web.config, který má název Troubleshooting Tracking Profile, je k dispozici také jiný profil, který generuje více událostí sledování pracovních postupů. Při instalaci rozhraní .NET Framework 4.6.1 se v souboru Machine.config nakonfiguruje výchozí profil s prázdným názvem. Tento profil je používán konfigurací chování sledování ETW, když není zadán žádný název profilu nebo je zadán prázdný název profilu.

Profil sledování stavu generuje záznamy instance pracovního postupu a záznamy šíření chyb aktivit. Tento profil se vytvoří přidáním následujícího profilu sledování do konfiguračního souboru Web.config.

<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>

Profil lze změnit změnou EtwTrackingParticipant konfigurace na následující.

<behaviors>
  <serviceBehaviors>
    <behavior>
      <etwTracking profileName="HealthMonitoring Tracking Profile"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Vyčistit (volitelně)

  1. Otevřete Prohlížeč událostí.

  2. Přejděte do prohlížeče událostí, protokolů aplikací a služeb, Microsoftu, Windows, aplikačních serverových aplikací. Klikněte pravým tlačítkem myši na Analýzu a vyberte Zakázat protokol.

  3. Přejděte do prohlížeče událostí, protokolů aplikací a služeb, Microsoftu, Windows, aplikačních serverových aplikací. Klikněte pravým tlačítkem na Analýzu a vyberte Vymazat protokol.

  4. Pokud chcete události vymazat, zvolte možnost Vymazat .

Známý problém

Poznámka:

V Prohlížeči událostí je známý problém, že může selhat dekódování událostí ETW (Trasování událostí pro Windows). Může se zobrazit chybová zpráva, která vypadá takto.

Popis ID události <id> ze zdroje Microsoft -Windows-Application Server-Applications nelze najít. Součást, která vyvolá tuto událost, není nainstalována v místním počítači nebo je poškozena instalace. Komponentu můžete nainstalovat nebo opravit na místním počítači.

Pokud k této chybě dojde, klikněte v podokně akcí na aktualizovat. Událost by nyní měla být správně dekódována.

Viz také