在服务组件中使用全局程序集缓存
注意
本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。
服务组件(托管代码 COM+ 组件)应置于全局程序集缓存中。 在有些方案中,公共语言运行时和 COM+ 服务能够处理不在全局程序集缓存中的服务组件,而在有些方案中则不能。 以下方案对此进行了说明:
对于 COM+ 服务器应用程序中的服务组件,包含组件的程序集必须位于全局程序集缓存中,因为 Dllhost.exe 不在包含服务组件的目录中运行。
对于 COM+ 库应用程序中的服务组件,运行时和 COM+ 服务可通过搜索当前目录来解析对包含组件的程序集的引用。 在这种情况下,程序集不需要位于全局程序集缓存中。
对于 ASP.NET 应用程序中的服务组件,情况则有所不同。 如果将包含服务组件的程序集放在应用程序基的 bin 目录中,并使用按需注册,程序集将被卷影复制到下载缓存,因为 ASP.NET 需利用运行时的卷影功能。