IIS 6.0应用程序池共享DLL

时间:2009-04-09 21:01:16

标签: memory dll iis-6

我在一个应用程序池中有10个以上的应用程序。所有这些应用程序都有一些常见的dll,它们都加载了。现在的问题是这些dll被放在每个应用程序的'\ bin'文件夹中。所以每个应用;即使它使用dll_a,最终也会加载自己的dll_a'副本'。

我有几个问题 1)这样可以吗? 2)我应该将dll_a放在一些公共文件夹中并让所有应用程序引用1个单一副本吗? 3.为这些应用程序提供服务的每个工作进程是否从不同路径加载dll_a的多个副本,即使它们基本上是相同的dll?

1 个答案:

答案 0 :(得分:2)

1)这样可以吗? - 是的,这没关系。

2)我应该将dll_a放在一些常用文件夹中并让所有应用程序引用1个单一副本吗? - 如果你愿意,你可以。您将遇到的问题是,如果您需要让应用程序使用不同版本的DLL,则所有其他版本都必须升级(或降级)。如果部署不是管理dll的问题,我倾向于给他们自己的同类副本。我有一个非常自动化的过程,我工作,所以在需要时保持同步是非常微不足道的。

3)服务这些应用程序的每个工作进程是否从不同的路径加载dll_a的多个副本,即使它们基本上是相同的dll? - 是的,每个进程都会将它放在dll的副本上。每个应用程序都在它自己的内存空间中运行,因此从技术上来说它们使用相同的内存空间,每个应用程序都会在内存中有一个副本。