.NET 运行时加载器和绑定器事件

本文中介绍的事件用于收集有关加载和卸载程序集和模块的信息。 有关如何将这些事件用于诊断的详细信息,请参阅对 .NET 应用程序进行日志记录和跟踪

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 说明
DomainModuleLoad_V1 151 在为应用程序域加载模块时引发。

ModuleLoad_V2 事件

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 描述
ModuleLoad_V2 152 在进程的生存期内加载模块时引发。
字段名 数据类型 说明
ModuleID win:UInt64 模块的唯一 ID。
AssemblyID win:UInt64 此模块所驻留的程序集的 ID。
ModuleFlags win:UInt32 0x1:非特定于域的模块。

0x2:模块具有本机映像。

0x4:动态模块。

0x8:清单模块。
Reserved1 win:UInt32 保留的字段。
ModuleILPath win:UnicodeString 模块的公共中间语言 (CIL) 映像的路径;如果是动态程序集(以 null 结尾),则为动态模块名。
ModuleNativePath win:UnicodeString 如果存在(以 null 结尾),则为模块本机映像的路径。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 的实例的唯一 ID。
ManagedPdbSignature win:GUID 匹配此模块的托管程序数据库 (PDB) 的 GUID 签名。
ManagedPdbAge win:UInt32 写入匹配此模块的托管 PDB 的年限数。
ManagedPdbBuildPath win:UnicodeString 生成匹配此模块的托管 PDB 的位置的路径。 在某些情况下,这可能只是一个文件名。
NativePdbSignature win:GUID 匹配此模块的本机映像生成器 (NGen) PDB 的 GUID 签名(如果适用)。
NativePdbAge win:UInt32 写入匹配此模块的 NGen PDB 的年限数(如果适用)。
NativePdbBuildPath win:UnicodeString 生成匹配此模块的 NGen PDB 的位置的路径(如果适用)。 在某些情况下,这可能只是一个文件名。

ModuleUnload_V2 事件

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 说明
ModuleUnload_V2 153 在进程的生存期内卸载模块时引发。
字段名 数据类型 说明
ModuleID win:UInt64 模块的唯一 ID。
AssemblyID win:UInt64 此模块所驻留的程序集的 ID。
ModuleFlags win:UInt32 0x1:非特定于域的模块。

0x2:模块具有本机映像。

0x4:动态模块。

0x8:清单模块。
Reserved1 win:UInt32 保留的字段。
ModuleILPath win:UnicodeString 模块的公共中间语言 (CIL) 映像的路径;如果是动态程序集(以 null 结尾),则为动态模块名。
ModuleNativePath win:UnicodeString 如果存在(以 null 结尾),则为模块本机映像的路径。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 的实例的唯一 ID。
ManagedPdbSignature win:GUID 匹配此模块的托管程序数据库 (PDB) 的 GUID 签名。
ManagedPdbAge win:UInt32 写入匹配此模块的托管 PDB 的年限数。
ManagedPdbBuildPath win:UnicodeString 生成匹配此模块的托管 PDB 的位置的路径。 在某些情况下,这可能只是一个文件名。
NativePdbSignature win:GUID 匹配此模块的本机映像生成器 (NGen) PDB 的 GUID 签名(如果适用)。
NativePdbAge win:UInt32 写入匹配此模块的 NGen PDB 的年限数(如果适用)。
NativePdbBuildPath win:UnicodeString 生成匹配此模块的 NGen PDB 的位置的路径(如果适用)。 在某些情况下,这可能只是一个文件名。

ModuleDCStart_V2 事件

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 说明
ModuleDCStart_V2 153 在启动断开期间枚举模块。
字段名 数据类型 说明
ModuleID win:UInt64 模块的唯一 ID。
AssemblyID win:UInt64 此模块所驻留的程序集的 ID。
ModuleFlags win:UInt32 0x1:非特定于域的模块。

0x2:模块具有本机映像。

0x4:动态模块。

0x8:清单模块。
Reserved1 win:UInt32 保留的字段。
ModuleILPath win:UnicodeString 模块的公共中间语言 (CIL) 映像的路径;如果是动态程序集(以 null 结尾),则为动态模块名。
ModuleNativePath win:UnicodeString 如果存在(以 null 结尾),则为模块本机映像的路径。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 的实例的唯一 ID。
ManagedPdbSignature win:GUID 匹配此模块的托管程序数据库 (PDB) 的 GUID 签名。
ManagedPdbAge win:UInt32 写入匹配此模块的托管 PDB 的年限数。
ManagedPdbBuildPath win:UnicodeString 生成匹配此模块的托管 PDB 的位置的路径。 在某些情况下,这可能只是一个文件名。
NativePdbSignature win:GUID 匹配此模块的本机映像生成器 (NGen) PDB 的 GUID 签名(如果适用)。
NativePdbAge win:UInt32 写入匹配此模块的 NGen PDB 的年限数(如果适用)。
NativePdbBuildPath win:UnicodeString 生成匹配此模块的 NGen PDB 的位置的路径(如果适用)。 在某些情况下,这可能只是一个文件名。

ModuleDCEnd_V2 事件

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 描述
ModuleDCEnd_V2 154 在结束断开期间枚举模块。
字段名 数据类型 说明
ModuleID win:UInt64 模块的唯一 ID。
AssemblyID win:UInt64 此模块所驻留的程序集的 ID。
ModuleFlags win:UInt32 0x1:非特定于域的模块。

0x2:模块具有本机映像。

0x4:动态模块。

0x8:清单模块。
Reserved1 win:UInt32 保留的字段。
ModuleILPath win:UnicodeString 模块的公共中间语言 (CIL) 映像的路径;如果是动态程序集(以 null 结尾),则为动态模块名。
ModuleNativePath win:UnicodeString 如果存在(以 null 结尾),则为模块本机映像的路径。
ClrInstanceID win:UInt16 CLR 或 CoreCLR 的实例的唯一 ID。
ManagedPdbSignature win:GUID 匹配此模块的托管程序数据库 (PDB) 的 GUID 签名。
ManagedPdbAge win:UInt32 写入匹配此模块的托管 PDB 的年限数。
ManagedPdbBuildPath win:UnicodeString 生成匹配此模块的托管 PDB 的位置的路径。 在某些情况下,这可能只是一个文件名。
NativePdbSignature win:GUID 匹配此模块的本机映像生成器 (NGen) PDB 的 GUID 签名(如果适用)。
NativePdbAge win:UInt32 写入匹配此模块的 NGen PDB 的年限数(如果适用)。
NativePdbBuildPath win:UnicodeString 生成匹配此模块的 NGen PDB 的位置的路径(如果适用)。 在某些情况下,这可能只是一个文件名。

AssemblyLoad_V1 事件

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 描述
AssemblyLoad_V1 154 在加载程序集时引发。
字段名 数据类型 说明
AssemblyID win:UInt64 程序集的唯一 ID。
AppDomainID win:UInt64 此程序集的域的 ID。
BindingID win:UInt64 唯一地标识程序集绑定的 ID。
AssemblyFlags win:UInt32 0x1:非特定于域的程序集。

0x2:动态程序集。

0x4:程序集具有本机映像。

0x8:可回收程序集。
AssemblyName win:UnicodeString 完全限定程序集名称。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AssemblyUnload_V1 事件

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 说明
FireAssemblyUnload_V1 155 在加载程序集时引发。
字段名 数据类型 说明
AssemblyID win:UInt64 程序集的唯一 ID。
AppDomainID win:UInt64 此程序集的域的 ID。
BindingID win:UInt64 唯一地标识程序集绑定的 ID。
AssemblyFlags win:UInt32 0x1:非特定于域的程序集。

0x2:动态程序集。

0x4:程序集具有本机映像。

0x8:可回收程序集。
AssemblyName win:UnicodeString 完全限定程序集名称。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AssemblyDCStart_V1 事件

引发事件的关键字 事件 Level
LoaderKeyword (0x8) DomainModuleLoad_V1 信息性 (4)
事件 事件 ID 说明
AssemblyDCStart_V1 155 在启动断开期间枚举程序集。
字段名 数据类型 说明
AssemblyID win:UInt64 程序集的唯一 ID。
AppDomainID win:UInt64 此程序集的域的 ID。
BindingID win:UInt64 唯一地标识程序集绑定的 ID。
AssemblyFlags win:UInt32 0x1:非特定于域的程序集。

0x2:动态程序集。

0x4:程序集具有本机映像。

0x8:可回收程序集。
AssemblyName win:UnicodeString 完全限定程序集名称。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AssemblyLoadStart 事件

引发事件的关键字 事件 Level
Binder (0x4) AssemblyLoadStart 信息性 (4)
事件 事件 ID 说明
AssemblyLoadStart 290 已请求程序集加载。
字段名 数据类型 说明
AssemblyName win:UnicodeString 程序集的名称。
AssemblyPath win:UnicodeString 程序集名称的路径。
RequestingAssembly win:UnicodeString 正在请求的(“父”)程序集的名称。
AssemblyLoadContext win:UnicodeString 程序集的加载上下文。
RequestingAssemblyLoadContext win:UnicodeString 正在请求的(“父”)程序集的加载上下文。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AssemblyLoadStop 事件

引发事件的关键字 事件 Level
Binder (0x4) AssemblyLoadStart 信息性 (4)
事件 事件 ID 说明
AssemblyLoadStart 291 已请求程序集加载。
字段名 数据类型 说明
AssemblyName win:UnicodeString 程序集的名称。
AssemblyPath win:UnicodeString 程序集名称的路径。
RequestingAssembly win:UnicodeString 正在请求的(“父”)程序集的名称。
AssemblyLoadContext win:UnicodeString 程序集的加载上下文。
RequestingAssemblyLoadContext win:UnicodeString 正在请求的(“父”)程序集的加载上下文。
Success win:Boolean 程序集加载是否成功。
ResultAssemblyName win:UnicodeString 已加载的程序集的名称。
ResultAssemblyPath win:UnicodeString 从中加载的程序集的路径。
Cached win:UnicodeString 是否缓存了加载。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

ResolutionAttempted 事件

引发事件的关键字 Level
Binder (0x4) 信息性 (4)
事件 事件 ID 说明
ResolutionAttempted 292 已请求程序集加载。
字段名 数据类型 说明
AssemblyName win:UnicodeString 程序集的名称。
Stage win:UInt16 解析阶段。

0:在加载中查找。

1:程序集加载上下文

2:部署应用程序集。

3:默认程序集加载上下文回退。

4:解析附属程序集。

5:正在解析程序集加载上下文。

6:正在解析 AppDomain 程序集。
AssemblyLoadContext win:UnicodeString 程序集的加载上下文。
Result win:UInt16 解析尝试的结果。

0:成功

1:未找到程序集

2:版本不兼容

3:程序集名称不匹配

4:失败

5:异常
ResultAssemblyName win:UnicodeString 已解析的程序集的名称。
ResultAssemblyPath win:UnicodeString 从中解析的程序集的路径。
ErrorMessage win:UnicodeString 发生异常时的错误消息。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AssemblyLoadContextResolvingHandlerInvoked 事件

引发事件的关键字 Level
Binder (0x4) 信息性 (4)
事件 事件 ID 说明
AssemblyLoadContextResolvingHandlerInvoked 293 已调用 AssemblyLoadContext.Resolving 处理程序。
字段名 数据类型 说明
AssemblyName win:UnicodeString 程序集的名称。
HandlerName win:UnicodeString 已调用的处理程序的名称。
AssemblyLoadContext win:UnicodeString 程序集的加载上下文。
ResultAssemblyName win:UnicodeString 已解析的程序集的名称。
ResultAssemblyPath win:UnicodeString 从中解析的程序集的路径。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AppDomainAssemblyResolveHandlerInvoked 事件

引发事件的关键字 Level
Binder (0x4) 信息性 (4)
事件 事件 ID 说明
AppDomainAssemblyResolveHandlerInvoked 294 已调用 AppDomain.AssemblyResolve 处理程序。
字段名 数据类型 说明
AssemblyName win:UnicodeString 程序集的名称。
HandlerName win:UnicodeString 已调用的处理程序的名称。
ResultAssemblyName win:UnicodeString 已解析的程序集的名称。
ResultAssemblyPath win:UnicodeString 从中解析的程序集的路径。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AssemblyLoadFromResolveHandlerInvoked 事件

引发事件的关键字 Level
Binder (0x4) 信息性 (4)
事件 事件 ID 说明
AssemblyLoadFromResolveHandlerInvoked 295 已调用 Assembly.LoadFrom 处理程序。
字段名 数据类型 说明
AssemblyName win:UnicodeString 程序集的名称。
IsTrackedLoad win:Boolean 是否跟踪程序集加载。
RequestingAssemblyPath win:UnicodeString 正在请求的程序集的路径。
ComputedRequestedAssemblyPath win:UnicodeString 已请求的程序集的路径。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

KnownPathProbed 事件

引发事件的关键字 Level
Binder (0x4) 信息性 (4)
事件 事件 ID 说明
KnownPathProbed 296 探测到了程序集的一个已知路径。
字段名称 数据类型 说明
FilePath win:UnicodeString 已探测的路径。
Source win:UInt16 已探测的路径的源。

0x0:应用程序集。

0x1:应用本机映像路径。

0x2:应用路径。

0x3:平台资源根。

0x4:附属子目录。
Result win:UInt32 探测的 HRESULT。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。