Asp.net将DLL重新安装到GAC中
时间:2020-03-05 18:42:58 来源:igfitidea点击:
我正在尝试在GAC中重新安装DLL,一切似乎都可以正常工作,但是访问它的Web应用程序似乎仍在使用旧版本。
旧的DLL与新的DLL具有相同的版本,仅需少量编辑,它将被50个不同的站点使用,因此更改版本然后更改web.config中的引用不是一个好的解决方案。
重新启动IIS服务器或者辅助进程不是一种选择,因为已经有50个正在运行的站点必须继续这样做。
有谁知道我在做错什么,或者我可以做些什么来纠正这种情况?
解决方案
回答
AFAIK,我们需要为其重新启动IIS,以获得对更新的DLL的新鲜引用。最好的选择是在低流量时间执行重置。如果我们正在使用负载平衡来运行多台服务器,则可以防止新连接击中一台服务器,直到关闭所有连接。之后,更新DLL,重新启动IIS,然后将服务器重新放入连接池。对每个服务器重复此操作,最终用户没有明显的停机时间。
回答
由于我们没有引用应用程序池,因此我假设我们使用的是旧版本的IIS。在这种情况下,我们需要做的是"触摸"每个引用DLL的站点中的所有DLL。
问题在于代码已经被加载,我们需要找到一种非侵入性的方式来重新加载应用程序。回收应用程序池是一种有效的方法。如果我们在没有应用程序池的旧IIS上,则更新/ bin /文件夹或者web.config文件中最后修改的IIS将重新加载该应用程序,而不会影响其他站点。
因此,执行上述操作的某种脚本是有序的。它需要做的就是更新每个/ bin应用程序目录中DLL上的lastmodified。