代码改变世界

[Asp.net]更新全局程序集缓存的注意事项

2011-11-21 11:30  slmk  阅读(503)  评论(0编辑  收藏  举报

全局程序集缓存GAC的优先级是最高的,也就是说相同名称的dll,如果同时放到GAC和应用程序目录下,应用程序首先使用GAC中的文件,这与.net的程序集发现规则有关(先在GAC中找,找不到再到应用程序目录下找)。部署到GAC中最大的好处是:更新成本低。试想如果以后发现了a.dll中有bug,要更新a.dll,而此时你已经部署了100个引用a.dll的应用,此时可以果断的部署到GAC中,那么你所有的应用程序就都会得到更新了。

然而这种更新并不是立即发生的。你虽然卸载了GAC中的程序集,并且将新程序集拖了过去,你还是发现你的应用没有丝毫改变,此时需要回收你的应用程序所在的程序池!因为应用程序还在使用内存中的老版本,这就是GAC称之为全局高速“程序集缓存”的原因。缓存到内存中,加载速度快是部署到GAC的另一个优势。

这就是更新全局程序集缓存的注意事项,希望对你有所帮助。