ASP.NET服务器将程序集的多个副本加载到内存中

时间:2013-05-25 20:28:23

标签: c# asp.net .net .net-assembly appdomain

我有托管ASP.NET的Web服务器。我使用了SysInternal进程资源管理器,发现从服务器bin文件夹中加载了每个dll的几个版本。程序集从\ Temporary ASP.NET Files \目录加载。我不明白为什么服务器正在加载几个相同的程序集。无法加载同一Application Domain中的两个相同.NET程序集。它既不是默认的加载上下文,也不是从上下文加载(我看到只有1个appDomain)。只有带有反射的非上下文,如fromFile方法。但那怎么可能呢?根本不明白......我不是很熟悉ASP.NET,也许我不知道什么?


screen shot frome the proces explorer http://lbs.com.ua/downloads/ScreenShot0251.jpg

screen shot AppDomains http://lbs.com.ua/downloads/ScreenShot027.jpg

1 个答案:

答案 0 :(得分:2)

这是ASP.NET编译和复制应用程序的文件夹...通常称为“卷影副本”。您的ASP.NET视图代码通常不会在编译时编译,因此.NET会将其编译为运行时放在此文件夹中的二进制文件。其他DLL也会在运行时复制到此文件夹,这可确保您可以在执行期间随时替换/ bin文件(例如通过拖放)... ASP.NET会在bin文件夹上保持监视并刷新如果文件发生更改,则为Shadow Copies。