如果dll已由w3wp.exe
加载并且我们将其替换,会发生什么情况?在ASP.NET中已经加载AppDomain的情况下替换DLL
当然,我们可以替换一个dll,因为asp.net使用Bin
文件夹DLL的缓存版本,但是我想知道如果更换dll,它会加载新的DLL,或者等到下一次回收或者当没有新的请求。
编辑: DLL包含一个单独的类
如果dll已由w3wp.exe
加载并且我们将其替换,会发生什么情况?在ASP.NET中已经加载AppDomain的情况下替换DLL
当然,我们可以替换一个dll,因为asp.net使用Bin
文件夹DLL的缓存版本,但是我想知道如果更换dll,它会加载新的DLL,或者等到下一次回收或者当没有新的请求。
编辑: DLL包含一个单独的类
从MSDN:
如果更改了.dll和写一个新的版本 它的
Bin
文件夹, ASP.NET检测更新并使用 新版本的.dll为新的 页面请求从此。
一旦dll被修改或添加,您的应用程序将被重新编译。
您的application's domain will be recycled当bin目录发生任何更改或其内容被修改时。
我的情况有点复杂。这是一个'HttpHandler',我替换的DLL包含一个'Singleton'类。由于应用程序域已经加载,我猜新的DLL将不会被使用,直到下一个“回收”。 – Xaqron 2011-05-31 04:16:16
@Xaqron - 不管dll是否包含Singleton类,都没关系。它将回收AppDomain并重新加载它。 – 2011-05-31 04:24:30