昨天,大约两年后,我们重新部署了我们的应用程序。代码没有改变,但组成项目结构已经重新组织成更小的项目。一切似乎都很好,直到今天(下午 5 点 29 分)我们的一位用户指出了一个问题。从遇到的错误的性质来看,很明显新部署的应用程序没有使用重组解决方案中的新 DLL,而是仍在使用旧的。我删除了仍在部署 bin
文件夹中的旧 DLL,并意识到这会导致应用程序中断,从而证实了这一点。
我已经删除了 %WINDIR%/Microsoft.Net/Framework/v2.0/Temporary Internet Files
下的内容,但问题仍然存在。如果有人可以解释这一点和/或提出永久可靠的修复建议,我将不胜感激。
最佳答案
我们已经看到 3 种不同的情况导致了这个问题:
1) Internet 临时文件中的缓存 DLL。请记住,如果您已将应用程序升级到 .Net 4,则此目录位于 v4.0.30319 子目录中。
2) IIS 或用户浏览器中的缓存页面。将网站上的到期时间更改为立即(至少暂时)通常可以解决此问题。
3) 应该更新但没有更新的 DLL。此问题分为两类:
a) DLL 上的版本未更新,因此未部署新版本。
b) 开发人员未正确 checkin 或在构建机器上 checkout 要部署的代码。
我们始终能够通过验证上述各项来解决问题。
关于c# - ASP.Net - 新版本的代码是否仍在使用以前的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8930424/