Sdílet prostřednictvím


Sledování událostí ve službě Event Tracking ve Windows

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

Pracovní postup v ukázce obdrží požadavek, přiřadí reciproční vstupní data vstupní proměnné a vrátí reciproční hodnotu zpět klientovi. Pokud jsou vstupní data 0, dojde k výjimce dělení nulou, která je neošetřená, která způsobí přerušení pracovního postupu. Při povoleném sledování se záznam sledování chyb vygeneruje do Trasování událostí pro Windows, což může pomoct s řešením chyby později. Účastník sledování Trasování událostí pro Windows je nakonfigurovaný s profilem sledování, který se přihlašuje k odběru záznamů sledování. Profil sledování je definován v souboru Web.config a poskytuje se jako konfigurační parametr pro účastníka sledování Trasování událostí pro Windows. Účastník sledování Trasování událostí pro Windows je nakonfigurovaný v souboru Web.config služby pracovního postupu a použije se u služby jako chování služby. V této ukázce zobrazíte události sledování v protokolu událostí pomocí Prohlíž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. Modul runtime sledování vytvoří instanci pracovního postupu pro generování událostí souvisejících s životním cyklem pracovního postupu, událostmi z aktivit pracovního postupu a vlastních událostí. Následující tabulka obsahuje podrobnosti o primárních součástech infrastruktury sledování.

Komponenta Popis
Modul runtime sledování Poskytuje infrastrukturu pro generování záznamů sledování.
Sledování účastníků Přistupuje 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í událostí pro Windows (ETW).
Profil sledování Mechanismus filtrování, který umožňuje sledování účastníka přihlásit k odběru podmnožinu záznamů sledování vygenerovaný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 sledování instancí pracovního postupu 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 při naplánování aktivity nebo dokončení aktivity nebo při vyvolání chyby.
Záznam 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žina 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. Pomocí Průzkumník 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á sledování událostí vygenerovaných ze služby pracovního postupu.

  7. Ve stromovém zobrazení Prohlížeč událostí přejděte na Prohlížeč událostí, protokoly aplikací a služeb a 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č událostí přejděte na Prohlížeč událostí, protokoly aplikací a služeb, Microsoft, Windows, aplikační serverové aplikace. Klikněte pravým tlačítkem na Analýzu a výběrem možnosti Povolit protokol povolte analytický protokol.

  9. Otestujte službu pomocí testovacího klienta WCF poklikáním 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 Vyvolat.

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

    Přepněte zpět na Prohlížeč událostí a přejděte na Prohlížeč událostí, protokoly aplikací a služeb, Microsoft, Windows, Aplikační serverové aplikace. 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. Událost upozornění se také vygeneruje z aktivity pracovního postupu, která indikuje, že aktivita vyvolává 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 hrubý, který se přihlásí k odběru malé sady změn stavu vysoké úrovně 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 vygenerované z modulu runtime pracovního postupu do Trasování HealthMonitoring Tracking Profileudálostí událostí pomocí modulu ETW, který generuje malou sadu událostí. V souboru Web.config, který má název Troubleshooting Tracking Profile, je k dispozici také jiný profil, který generuje více událostí sledování pracovního postupu. 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 používá konfigurace chování sledování trasování událostí pro Windows, pokud není zadán žádný název profilu nebo 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čištění (volitelné)

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

  2. Přejděte na Prohlížeč událostí, protokoly aplikací a služeb, Microsoft, Windows, aplikační serverové aplikace. Klikněte pravým tlačítkem myši na Analýzu a vyberte Zakázat protokol.

  3. Přejděte na Prohlížeč událostí, protokoly aplikací a služeb, Microsoft, Windows, aplikační serverové aplikace. 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č událostí existuje známý problém, kdy se nemusí podařit dekódovat události Trasování událostí pro Windows. Může se zobrazit chybová zpráva, která vypadá takto.

Popis ID <> události ze zdroje Microsoft-Windows-Application Server-Applications-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 teď měla správně dekódovat.

Viz také