我正在尝试在GAC中重新安装DLL,一切似乎工作正常,但访问它的Web应用程序似乎仍在使用旧的。

旧DLL与新版本的版本相同,只有少量编辑,它将被50个不同的站点使用,因此更改版本然后更改web.config中的引用不是一个好的解决方案。

重新启动IIS服务器或工作进程不是一个选项,因为已经有50个站点在运行,必须继续这样做。

有谁知道我做错了什么或我能做些什么来弥补这种情况?

===============>>#1 票数:3 已采纳

AFAIK,您需要重新启动IIS才能获得对更新的DLL的新参考。 您最好的选择是在低流量时间执行重置。 如果您正在运行具有负载平衡的多个服务器,则可以阻止新连接命中一个服务器,直到所有连接都已关闭。 然后,更新DLL,重新启动IIS,并将服务器重新引入连接池。 对每个服务器重复此操作,最终用户没有明显的停机时间。

===============>>#2 票数:1

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

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

因此,按顺序执行上述某种脚本。 它需要做的就是更新每个/ bin应用程序目录中DLL的lastmodified。

  ask by John Boker translate from so

未解决问题?本站智能推荐: