Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从外部文件夹加载asp.net DLL_C#_Asp.net_Iis - Fatal编程技术网

C# 从外部文件夹加载asp.net DLL

C# 从外部文件夹加载asp.net DLL,c#,asp.net,iis,C#,Asp.net,Iis,我有50个相同的asp.net网站托管在IIS上。比如WordPress,每个网站都有不同的内容 C:\inetpub\vhosts\website1.com C:\inetpub\vhosts\website2.com C:\inetpub\vhosts\website3.com . . . C:\inetpub\vhosts\website50.com 因为这些都是ASP.NET网站的完全相同的副本;我想使用一个“公共”bin文件夹,这样我就不会每次加载50

我有50个相同的asp.net网站托管在IIS上。比如WordPress,每个网站都有不同的内容

C:\inetpub\vhosts\website1.com    
C:\inetpub\vhosts\website2.com
C:\inetpub\vhosts\website3.com
.    
.    
.    
C:\inetpub\vhosts\website50.com
因为这些都是ASP.NET网站的完全相同的副本;我想使用一个“公共”bin文件夹,这样我就不会每次加载50个相同的DLL副本来更新并加载到内存中


这里的解决方案是:不要工作,因为我希望DLL放在网站文件夹之外,这样它们就可以被共享。

关于IIS和ASP.NET的一个小细节。相反,它们将bin文件夹中的文件复制到“影子目录”(类似于“C:\WINDOWS\Microsoft.NET\Framework\v4.5.XXXX\Temporary ASP.NET files”)。正是从那里他们才真正被执行。监视bin文件夹的任何更改,并根据需要更新卷影目录。这样,即使在站点运行时,也可以部署新的DLL——否则,它们将被锁定

所以。。。无论您做什么,O/S都将加载同一DLL的多个映像,即使您让它们都使用同一个bin文件夹。据我所知,没有办法关掉这个

,如果你想节省一点磁盘空间,让你的站点使用一个普通的bin文件夹,考虑使用A。这本质上允许您创建一个指向另一个目录的目录(这种情况在Unix中更常见)。因此,您最终会从多个位置访问一个副本。只需提醒一句:删除内容时要非常小心,因为您可能会无意中删除所有50个站点中的文件夹

但更好的选择(取决于您运行50个相同站点的原因,这是非常不寻常的)是只运行一个站点,具有一个IP地址,但有几个DNS条目指向该IP。这样看来,当你只有一个站点时,你会有50个站点。这里的诀窍是(如果您使用https),您必须这样做,以便浏览器不会显示钓鱼警告。或者,如果您的站点是负载平衡的,您可以在负载平衡器(一种称为的策略)上终止SSL,这样就不需要IIS级别的证书