【发布时间】:2011-09-05 04:33:03
【问题描述】:
如果一个 dll 已经被 w3wp.exe 加载并且我们替换它会发生什么?
当然我们可以替换一个 dll,因为 asp.net 使用 Bin 文件夹 DLLs 的缓存版本,但我想知道在替换一个 dll 时它是否会加载新的,或者它等到下一次回收或当有没有新的请求。
编辑: DLL 包含一个单例类
【问题讨论】:
标签: c# .net asp.net iis application-pool
如果一个 dll 已经被 w3wp.exe 加载并且我们替换它会发生什么?
当然我们可以替换一个 dll,因为 asp.net 使用 Bin 文件夹 DLLs 的缓存版本,但我想知道在替换一个 dll 时它是否会加载新的,或者它等到下一次回收或当有没有新的请求。
编辑: DLL 包含一个单例类
【问题讨论】:
标签: c# .net asp.net iis application-pool
来自MSDN:
如果您更改 .dll 并编写一个新的 它的版本到
Bin文件夹, ASP.NET 检测更新并使用 新版本的 .dll 用于新 从那时起的页面请求。
【讨论】:
HttpHandler,我替换的DLL 包含一个Singleton 类。由于 App 域已经加载,我猜新的 DLL 直到下一个 recycling 才会使用。
Singleton 类无关紧要。它将回收 AppDomain 并重新加载它。
修改或添加 dll 后,您的应用程序将再次编译。
您的application's domain will be recycled 在 bin 目录发生任何更改或其内容被修改时。
【讨论】: