将服务组件与全局程序集缓存配合使用

注释

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

服务组件(托管代码 COM+ 组件)应放在全局程序集缓存中。 在某些情况下,公共语言运行时和 COM+ 服务可以处理不在全局程序集缓存中的服务组件;在其他方案中,它们不能。 以下方案说明了这一点:

  • 对于 COM+ Server 应用程序中的服务组件,包含组件的程序集必须位于全局程序集缓存中,因为 Dllhost.exe 不会在包含服务组件的同一目录中运行。

  • 对于 COM+ 库应用程序中的服务组件,运行时和 COM+ 服务可以通过在当前目录中搜索来解析对包含组件的程序集的引用。 在这种情况下,程序集不必位于全局程序集缓存中。

  • 对于 ASP.NET 应用程序中的服务组件,情况有所不同。 如果将包含服务组件的程序集放置在应用程序基础的 bin 目录中并使用按需注册,则程序集将卷影复制到下载缓存中,因为 ASP.NET 利用运行时的影子功能。

另请参阅