更改后,网站以某种方式运行缓存的dll

dwi*_*del 13 asp.net deployment iis-6

情况是我对一个类进行了一个小错误修复,因此他们只想部署受影响的dll.他们停止了IIS,用我给他们的新网站替换了网站iis目录的/ bin文件夹中的dll,然后再次启动iis.有多个服务器,但他们只是在一个服务器上进行了尝试.他们仍然在相关服务器的事件日志中看到相同的错误.查看堆栈跟踪,我可以告诉它正在运行旧的dll.

他们检查了GAC,但没有看到它.

我用反射器检查了dll以验证我给了他们正确的新dll.

这是一个asp.net 2.0网站,服务器是2003.我不知道它最初是如何部署的,但它在C:\ Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary中有旧dll的副本ASP.NET Files\NAME_services #################\assembly\dl3 ################### \和D :\ XXXX \网站\用户名\ SERVICES\OBJ \发布.它可以使用其中一个或构建旧的,甚至只是在内存中缓存它?

3Da*_*ave 13

核对你的临时asp.net文件夹内容.不知道为什么更新没有自动编译.


Tom*_*m A 5

我们有同样的问题,但有轻微的并发症,我们有很多站点,所以“清除所有临时文件”并重新启动 IIS 对我们来说不是一个好的选择。因此,我们需要在强制刷新的内容上更有选择性。

在我们的 QA 机器上,在...“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files”下,我在文件资源管理器中搜索了我们要发布的部分文件名。该文件在一个文件夹中找到,例如:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\4503212x\ad95664x,所以我停止了应用程序池,删除了文件夹,重新启动了所有当时部署了 - 太棒了!

但是......我们在部署到生产时遇到了同样的问题,上面的方法不起作用。

长话短说,QA 应用程序池设置为“启用 32 位真”,但生产设置为“假”,因此生产临时文件驻留在:“C:\Windows\Microsoft.NET\Framework64\v4.0.30319”而是(\Framework64\ 而不是 \Framework\ )。

如果清除临时文件不起作用 - 仔细检查您的框架,或在 C:\Windows\Microsoft.NET 文件夹级别及以下查找要刷新的文件。你可能会感到惊讶。