Dobrze znani dostawcy zdarzeń na platformie .NET

Środowisko uruchomieniowe i biblioteki platformy .NET zapisują zdarzenia diagnostyczne za pośrednictwem wielu różnych dostawców zdarzeń. W zależności od potrzeb diagnostycznych można wybrać odpowiednich dostawców do włączenia. W tym artykule opisano niektóre z najczęściej używanych dostawców zdarzeń w środowisku uruchomieniowym i bibliotekach platformy .NET.

CoreCLR

Dostawca "Microsoft-Windows-DotNETRuntime"

Ten dostawca emituje różne zdarzenia ze środowiska uruchomieniowego platformy .NET, w tym GC, moduł ładujący, JIT, wyjątek i inne zdarzenia. Przeczytaj więcej o każdym zdarzeniu tego dostawcy na liście zdarzeń dostawcy środowiska uruchomieniowego.

Dostawca "Microsoft-DotNETCore-SampleProfiler"

Ten dostawca jest dostawcą zdarzeń środowiska uruchomieniowego platformy .NET, który jest używany do próbkowania procesora CPU dla zarządzanych stosów wywołań. Po włączeniu przechwytuje migawkę zarządzanego stosu wywołań każdego wątku co milisekundę. Aby włączyć to przechwytywanie, należy określić wartość EventLevelInformational lub większą.

Biblioteki platformy

Dostawca "Microsoft-Extensions-DependencyInjection"

Ten dostawca rejestruje informacje z narzędzia DependencyInjection. W poniższej tabeli przedstawiono zdarzenia rejestrowane przez dostawcę Microsoft-Extensions-DependencyInjection :

Nazwa zdarzenia Słowo kluczowe Poziom opis
CallSiteBuilt Pełne (5) Utworzono witrynę połączenia.
ServiceResolved Pełne (5) Rozwiązano problem z usługą.
ExpressionTreeGenerated Pełne (5) Wygenerowano drzewo wyrażeń.
DynamicMethodBuilt Pełne (5) A DynamicMethod został zbudowany.
ScopeDisposed Pełne (5) Zakres został usunięty.
ServiceRealizationFailed Pełne (5) Realizacja usługi nie powiodła się.
ServiceProviderBuilt ServiceProviderInitialized(0x1) Pełne (5) A ServiceProvider został zbudowany.
ServiceProviderDescriptors ServiceProviderInitialized(0x1) Pełne (5) Lista, ServiceDescriptor która została użyta podczas kompilacji ServiceProvider .

Dostawca "System.Buffers.ArrayPoolEventSource"

Ten dostawca rejestruje informacje z puli ArrayPool. W poniższej tabeli przedstawiono zdarzenia rejestrowane przez ArrayPoolEventSourceprogram :

Nazwa zdarzenia Poziom opis
BufferRented Pełne (5) Bufor jest pomyślnie wynajęty.
BufferAllocated Informacyjne (4) Bufor jest przydzielany przez pulę.
BufferReturned Pełne (5) Bufor jest zwracany do puli.
BufferTrimmed Informacyjne (4) Podjęto próbę zwolnienia buforu z powodu ciśnienia pamięci lub braku aktywności.
BufferTrimPoll Informacyjne (4) Sprawdzanie jest wykonywane w celu przycinania buforów.
BufferDropped Informacyjne (4) Bufor jest porzucany po powrocie do puli.

Dostawca "System.Net.Http"

Ten dostawca rejestruje informacje ze stosu HTTP. W poniższej tabeli przedstawiono zdarzenia rejestrowane przez System.Net.Http dostawcę:

Nazwa zdarzenia Poziom opis
RequestStart Informacyjne (4) Rozpoczęto żądanie HTTP.
RequestStop Informacyjne (4) Żądanie HTTP zostało zakończone.
RequestFailed Błąd (2) Żądanie HTTP nie powiodło się.
Połączenie ionEstablished Informacyjne (4) Nawiązano połączenie HTTP.
Połączenie ionClosed Informacyjne (4) Połączenie HTTP zostało zamknięte.
RequestLeftQueue Informacyjne (4) Żądanie HTTP opuściło kolejkę żądań.
RequestHeadersStart Informacyjne (4) Rozpoczęto żądanie HTTP dla nagłówka.
RequestHeaderStop Informacyjne (4) Żądanie HTTP dla nagłówka zostało zakończone.
RequestContentStart Informacyjne (4) Rozpoczęto żądanie HTTP dotyczące zawartości.
RequestContentStop Informacyjne (4) Żądanie HTTP dotyczące zawartości zostało zakończone.
ResponseHeadersStart Informacyjne (4) Uruchomiono odpowiedź HTTP dla nagłówka.
ResponseHeaderStop Informacyjne (4) Zakończono odpowiedź HTTP dla nagłówka.
ResponseContentStart Informacyjne (4) Rozpoczęto odpowiedź HTTP dla zawartości.
ResponseContentStop Informacyjne (4) Zakończono odpowiedź HTTP dla zawartości.

Dostawca "System.Net.NameResolution"

Ten dostawca rejestruje informacje dotyczące rozpoznawania nazw domen. W poniższej tabeli przedstawiono zdarzenia rejestrowane przez System.Net.NameResolutionprogram :

Nazwa zdarzenia Poziom opis
ResolutionStart Informacyjne (4) Rozpoczęto rozpoznawanie nazw domen.
ResolutionStop Informacyjne (4) Rozpoznawanie nazw domen zostało zakończone.
ResolutionFailed Informacyjne (4) Rozpoznawanie nazw domen nie powiodło się.

Dostawca "System.Net.Sockets"

Ten dostawca rejestruje informacje z programu Socket. W poniższej tabeli przedstawiono zdarzenia rejestrowane przez System.Net.Sockets dostawcę:

Nazwa zdarzenia Poziom opis
ConnectStart Informacyjne (4) Rozpoczęto próbę uruchomienia połączenia gniazda.
ConnectStop Informacyjne (4) Próba uruchomienia połączenia gniazda została zakończona.
ConnectFailed Informacyjne (4) Próba uruchomienia połączenia gniazda nie powiodła się.
AcceptStart Informacyjne (4) Rozpoczęto próbę zaakceptowania połączenia gniazda.
AcceptStop Informacyjne (4) Próba zaakceptowania połączenia gniazda została zakończona.
AcceptFailed Informacyjne (4) Próba zaakceptowania połączenia gniazda nie powiodła się.

Dostawca "System.Threading.Tasks.TplEventSource"

Ten dostawca rejestruje informacje dotyczące biblioteki równoległej zadań, takich jak zdarzenia harmonogramu zadań. W poniższej tabeli przedstawiono zdarzenia rejestrowane przez TplEventSourceprogram :

Nazwa zdarzenia Słowo kluczowe Poziom opis
TaskScheduled TaskTransfer(0x1)

Tasks(0x2)
Informacyjne (4) Element jest Task kolejkowany do harmonogramu zadań.
TaskStarted Tasks(0x2) Informacyjne (4) Element Task A rozpoczął wykonywanie.
TaskCompleted TaskStops(0x40) Informacyjne (4) Element A Task zakończył wykonywanie.
TaskWaitBegin TaskTransfer(0x1)

TaskWait(0x2)
Informacyjne (4) Wyzwolono, gdy rozpoczęto niejawne lub jawne oczekiwanie na Task ukończenie.
TaskWaitEnd Tasks(0x2) Pełne (5) Wyzwolony po powrocie oczekiwania na Task ukończenie.
TaskWaitContinuationStarted Tasks(0x2) Pełne (5) Wyzwolony po uruchomieniu pracy (metody) skojarzonej z elementem TaskWaitEnd .
TaskWaitContinuationCompleted TaskStops(0x40) Pełne (5) Wyzwolony po zakończeniu pracy (metody) skojarzonej z elementem TaskWaitEnd .
AwaitTaskContinuationScheduled TaskTransfer(0x1)

Tasks(0x2)
Informacyjne (4) Wyzwalane, gdy zaplanowano asynchroniczną kontynuację elementu Task .

ASP.NET Core

ASP.NET Core udostępnia również kilka zdarzeń, które ułatwiają diagnozowanie problemów w stosie ASP.NET Core.

Aby dowiedzieć się więcej o zdarzeniach w programie ASP.NET Core i sposobie ich korzystania, zobacz Rejestrowanie na platformie .NET Core i ASP.NET Core.

Entity Framework Core

Program EF Core udostępnia również zdarzenia ułatwiające diagnozowanie problemów w programie EF Core.

Aby dowiedzieć się więcej o zdarzeniach w programie EF Core i sposobie ich korzystania, zobacz Zdarzenia platformy .NET w programie EF Core.