在实例化.NET类时,经典ASP使用了什么AppDomain?

AGS*_*AGS 5 .net asp-classic

当经典ASP页面上的代码创建.NET类的实例(标记为ComVisible,类型库已注册)时会发生什么(就CLR而言)?

什么AppDomain用于新创建的实例?它与在同一站点上运行的ASP.NET应用程序的AppDomain有什么关系吗?

x0n*_*x0n 2

IIS 中的每个“应用程序”(asp.net 或经典 ASP 站点)都在 win32 进程中运行,也称为“应用程序池”。每个应用程序池(进程)可能会同时加载零个或一个版本的 CLR*(1.0、1.1、2.0、4.0)。进程内的每个 CLR 实例至少有一个应用程序域,即 .NET 的执行和隔离单元。当您通过经典 ASP 中的 CCW(COM 可调用包装器)实例化 .NET 组件时,CLR 将加载到托管该站点的应用程序池进程中,并为该进程创建默认的应用程序。URL 路径层次结构中的逻辑位置无关紧要,因为不同的段可以有不同的应用程序池。

这可能涉及很多内容,但我建议阅读 IIS/WAS 体系结构和 CLR 的进程/应用程序域/程序集关系。

*CLR 4.0加载器允许将一个或多个版本的CLR加载到同一进程中