.NET 中已知的事件提供者

.NET 執行階段和程式庫可透過許多不同的事件提供者寫入診斷事件。 您可以根據自己的診斷需求,選擇要啟用的適當提供者。 本文描述 .NET 執行階段和程式庫中最常用的一些事件提供者。

CoreCLR

"Microsoft-Windows-DotNETRuntime" 提供者

此提供者會從 .NET 執行階段發出各種事件,包括 GC、載入器、JIT、例外狀況和其他事件。 若要深入了解此提供者的每個事件,請參閱執行階段提供者事件清單

"Microsoft-DotNETCore-SampleProfiler" 提供者

此提供者是受控呼叫堆疊的 CPU 取樣所使用的 .NET 執行階段事件提供者。 啟用時,會每毫秒為每個執行緒的受控呼叫堆疊擷取一次快照集。 若要啟用此擷取,必須指定 Informational 或更高的 EventLevel

Framework 程式庫

"Microsoft-Extensions-DependencyInjection" 提供者

此提供者會記錄來自 DependencyInjection 的資訊。 下表顯示 Microsoft-Extensions-DependencyInjection 提供者所記錄的事件:

事件名稱 關鍵字 層級 描述
CallSiteBuilt 詳細資訊 (5) 已建置呼叫站台。
ServiceResolved 詳細資訊 (5) 服務已修復。
ExpressionTreeGenerated 詳細資訊 (5) 已產生運算式樹狀架構。
DynamicMethodBuilt 詳細資訊 (5) 已建置 DynamicMethod
ScopeDisposed 詳細資訊 (5) 已處置範圍。
ServiceRealizationFailed 詳細資訊 (5) 服務實現失敗。
ServiceProviderBuilt ServiceProviderInitialized(0x1) 詳細資訊 (5) 已建置 ServiceProvider
ServiceProviderDescriptors ServiceProviderInitialized(0x1) 詳細資訊 (5) ServiceProvider 建置期間已使用的 ServiceDescriptor 清單。

"System.Buffers.ArrayPoolEventSource" 提供者

此提供者會記錄來自 ArrayPool 的資訊。 下表顯示 ArrayPoolEventSource 所記錄的事件:

事件名稱 層級 描述
BufferRented 詳細資訊 (5) 已成功租用緩衝區。
BufferAllocated 告知性 (4) 集區已配置緩衝區。
BufferReturned 詳細資訊 (5) 緩衝區已傳回至集區。
BufferTrimmed 告知性 (4) 因記憶體壓力或閒置而嘗試釋放緩衝區。
BufferTrimPoll 告知性 (4) 正在進行檢查以修剪緩衝區。
BufferDropped 告知性 (4) 返回集區時,會卸除緩衝區。

"System.Net.Http" 提供者

此提供者會記錄來自 HTTP 堆疊的資訊。 下表顯示 System.Net.Http 提供者所記錄的事件:

事件名稱 層級 描述
RequestStart 告知性 (4) HTTP 要求已啟動。
RequestStop 告知性 (4) HTTP 要求已完成。
RequestFailed 錯誤 (2) HTTP 要求失敗。
ConnectionEstablished 告知性 (4) HTTP 連線已建立。
ConnectionClosed 告知性 (4) HTTP 連線已關閉。
RequestLeftQueue 告知性 (4) HTTP 要求已退出要求佇列。
RequestHeadersStart 告知性 (4) 標頭的 HTTP 要求已啟動。
RequestHeaderStop 告知性 (4) 標頭的 HTTP 要求已完成。
RequestContentStart 告知性 (4) 內容的 HTTP 要求已啟動。
RequestContentStop 告知性 (4) 內容的 HTTP 要求已完成。
ResponseHeadersStart 告知性 (4) 標頭的 HTTP 回應已啟動。
ResponseHeaderStop 告知性 (4) 標頭的 HTTP 回應已完成。
ResponseContentStart 告知性 (4) 內容的 HTTP 回應已啟動。
ResponseContentStop 告知性 (4) 內容的 HTTP 回應已完成。

"System.Net.NameResolution" 提供者

此提供者會記錄網域名稱解析的相關資訊。 下表顯示 System.Net.NameResolution 所記錄的事件:

事件名稱 層級 描述
ResolutionStart 告知性 (4) 網域名稱解析已啟動。
ResolutionStop 告知性 (4) 網域名稱解析已完成。
ResolutionFailed 告知性 (4) 網域名稱解析失敗。

"System.Net.Sockets" 提供者

此提供者會記錄來自 Socket 的資訊。 下表顯示 System.Net.Sockets 提供者所記錄的事件:

事件名稱 層級 描述
ConnectStart 告知性 (4) 嘗試開始通訊端連線已啟動。
ConnectStop 告知性 (4) 嘗試開始通訊端連線已完成。
ConnectFailed 告知性 (4) 嘗試開始通訊端連線失敗。
AcceptStart 告知性 (4) 嘗試接受通訊端連線已啟動。
AcceptStop 告知性 (4) 嘗試接受通訊端連線已完成。
AcceptFailed 告知性 (4) 嘗試接受通訊端連線失敗。

"System.Threading.Tasks.TplEventSource" 提供者

此提供者會記錄工作平行程式庫的資訊,例如工作排程器事件。 下表顯示 TplEventSource 所記錄的事件:

事件名稱 關鍵字 層級 描述
TaskScheduled TaskTransfer(0x1)

Tasks(0x2)
告知性 (4) Task 已排入工作排程器的佇列中。
TaskStarted Tasks(0x2) 告知性 (4) Task 已開始執行。
TaskCompleted TaskStops(0x40) 告知性 (4) Task 已執行完成。
TaskWaitBegin TaskTransfer(0x1)

TaskWait(0x2)
告知性 (4) 在開始隱含或明確等候 Task 完成時引發。
TaskWaitEnd Tasks(0x2) 詳細資訊 (5) 在等候 Task 完成傳回時引發。
TaskWaitContinuationStarted Tasks(0x2) 詳細資訊 (5) 在與 TaskWaitEnd 相關聯的工作 (方法) 啟動時引發。
TaskWaitContinuationCompleted TaskStops(0x40) 詳細資訊 (5) 在與 TaskWaitEnd 相關聯的工作 (方法) 完成時引發。
AwaitTaskContinuationScheduled TaskTransfer(0x1)

Tasks(0x2)
告知性 (4) 在排程了 Task 的非同步接續時引發。

ASP.NET Core

ASP.NET Core 也提供了數個事件協助您診斷 ASP.NET Core 堆疊中的問題。

若要深入了解 ASP.NET Core 中的事件及其取用方式,請參閱 .NET Core 和 ASP.NET Core 中的記錄

Entity Framework core

EF Core 也提供相關事件協助您診斷 EF Core 中的問題。

若要深入了解 EF Core 中的事件及其取用方式,請參閱 EF Core 中的 .NET 事件