重新安装一个DLL到GAC中的Asp.net

3
我正在尝试重新安装 GAC 中的 DLL,一切似乎都正常,但访问它的 Web 应用程序仍然似乎在使用旧版本。
旧的 DLL 与新版本相同,只有一个小修改,将被 50 个不同的站点使用,因此更改版本,然后更改 web.config 中的引用不是一个好的解决方案。
重启 IIS 服务器或工作进程不是选项,因为已经有 50 个网站在运行,必须继续运行。
是否有人知道我做错了什么或者我该怎么解决这个问题?
2个回答

3

据我所知,您需要重新启动IIS才能获取更新后的DLL的新引用。最好在低流量时执行重置操作。如果您正在运行具有负载平衡的多个服务器,则可以防止新连接命中一个服务器,直到所有连接都已关闭。然后,更新DLL,重新启动IIS,并将服务器带回连接池中。对于每台服务器重复此操作,而对终端用户没有可见的停机时间。


1

由于您没有提及应用程序池,我假设您使用的是旧版本的IIS。在这种情况下,您需要做的是“触摸”每个引用DLL的站点中的所有DLL。

问题在于代码已经加载,您需要找到一种非侵入式的方法来重新加载应用程序。回收应用程序池是一种有效的方法。如果您使用的是旧版IIS而没有应用程序池,则更新/bin/文件夹或web.config文件中的最后修改时间将重新加载应用程序,而不会影响其他站点。

因此,需要编写某种脚本来执行上述操作。它只需要更新每个/bin应用程序目录中的DLL的最后修改时间即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接