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

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

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

ModuleLoad_V2 事件

引发事件的关键字 事件 水平
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 事件

引发事件的关键字 事件 水平
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事件

引发事件的关键字 事件 水平
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 事件

引发事件的关键字 事件 水平
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 事件

引发事件的关键字 事件 水平
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 事件

引发事件的关键字 事件 水平
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事件

引发事件的关键字 事件 水平
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 事件

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

AssemblyLoadStop 事件

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

ResolutionAttempted 事件

引发事件的关键字 水平
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:Assembly NotFound

2:不兼容的版本

3:程序集名称不匹配

4:失败

5:异常
ResultAssemblyName win:UnicodeString 已解析的程序集的名称。
ResultAssemblyPath win:UnicodeString 已解析的程序集的路径。
ErrorMessage win:UnicodeString 如果出现异常,则会出现错误消息。
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

AssemblyLoadContextResolvingHandlerInvoked 事件

引发事件的关键字 水平
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 事件

引发事件的关键字 水平
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 事件

引发事件的关键字 水平
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 事件

引发事件的关键字 水平
Binder(0x4) 信息性 (4)
事件 事件 ID 描述
KnownPathProbed 296 已针对程序集探测已知路径。
字段名称 数据类型 描述
FilePath win:UnicodeString 已探测路径。
Source win:UInt16 探测的路径的源。

0x0:应用程序程序集。

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

0x2:应用路径。

0x3:平台资源根。

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