IIS工作进程:当不同的站点引用不同的版本时,会加载哪些DLL?

时间:2011-10-19 20:38:01

标签: c# iis versioning

IIS 6.0,一个下面有虚拟目录的根网站。

根网站有自己的bin目录,其中包含旧版本的DLL ...它是一个生产网站,我们不想触摸它。

示例:

CSA.Network.DLL  1.3.9117.0

下面的虚拟目录有bin目录,其中包含这些DLL的更新版本,例如:

CSA.Network.DLL  1.7.8221.0

当IIS工作进程启动时,它会加载1.3版本的DLL ...当它在虚拟目录中加载页面时,它还会加载1.7,还是会坚持1.3,因为它已经在内存中了?

引用是项目引用,因此设置为不需要特定类型,这使我认为它将尝试使用1.3并且从不加载1.7。那是对的吗?这里有哪些规则?

谢谢!

1 个答案:

答案 0 :(得分:1)

vcsjones和Sam Shiles的评论涵盖了所有内容......但重申:

  • 网站将在不同的AppDomain中运行,因此将获得不同版本的DLL。
  • 如果您担心可以配置在不同AppPools中运行的网站
  • 确保GAC中没有具有相同标识的程序集版本 - GAC始终优先于任何其他位置。
  • 确保没有为机器或您的站点的程序集设置重定向。