是否会同时加载两个相同的 dll(如果位于不同的位置并由两个不同的应用程序引用)



假设我有两个ASP.NET网站在IIS上托管。两者在bin文件夹中都具有相同的DLL组件" 1.dll"。CLR都会加载" 1.dll" dll,还是足够聪明,可以一次加载它,然后然后将其加载到其他地方是否已经加载了所需的版本/名称?

如果在不需要特定版本的情况下引用" 1.dll",它会有所作为吗?

如果两个站点都使用相同或不同的应用程序池,它会有所不同吗?

组件被加载到应用程序域中,这是一个过程中的逻辑边界。因此,如果您的Web应用程序在不同的应用程序池中运行(我的意思是不同的工作过程( - 是的,它将再次加载。

如果在不需要的情况下引用" 1.dll"会有所作为 特定版本?

如果两个站点都使用相同或不同 应用程序池?如果应用程序池相同,那么它可能会使用共享的应用程序域(尽管不是很确定(

更新:要回答您的第二个问题,我检查了在同一池中运行的两个网站的Process Explorer中的加载程序集,不同的应用程序域中,有自己的汇编实例。

>