Asp.net重新安装到GAC的DLL

问题描述:

我想在GAC中重新安装一个DLL,一切似乎工作正常,但访问它的Web应用程序似乎仍然使用旧的。Asp.net重新安装到GAC的DLL

旧的DLL与新版本只有一个小编辑,它将被50个不同的站点使用,所以改变版本,然后改变web.config中的引用不是好的解决方案。

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

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

AFAIK,您需要重新启动IIS才能获取对更新后的DLL的全新引用。您最好的选择是在低流量时间执行重置。如果您使用负载平衡运行多个服务器,则可以阻止新连接击中一台服务器,直到所有连接都关闭。之后,更新DLL,重新启动IIS,然后将服务器重新引入连接池。对于每台服务器重复进行操作,而不会向最终用户显示停机时间

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

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

因此,一个类似的脚本来做到这一点是为了。它所需要做的就是更新每个/ bin应用程序目录中DLL的最后修改。

+0

对于关于回收应用程序池的提示+1。 – paulH 2012-07-13 11:34:21