1

我有托管 ASP.NET 的 Web 服务器。我使用了 SysInternal 进程资源管理器,发现服务器 bin 文件夹中每个 dll 的多个版本都已加载。程序集从 \Temporary ASP.NET Files\ 目录加载。我不明白为什么服务器要加载几个相同的程序集。无法加载同一应用程序域中的两个相同的 .NET 程序集。它既不是默认加载上下文,也不是从上下文加载(我看到只有 1 个 appDomain)。仅在具有反射的非上下文的情况下,例如 fromFile 方法。但怎么可能呢?完全不明白...我在 ASP.NET 方面不是很有经验,也许我什么都不知道?


来自进程资源管理器的屏幕截图
(来源:lbs.com.ua

屏幕截图 AppDomains http://lbs.com.ua/downloads/ScreenShot027.jpg

4

1 回答 1

2

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

于 2013-05-25T22:15:05.707 回答