【问题标题】:Website is running a cached dll somehow after changing it网站在更改后以某种方式运行缓存的 dll
【发布时间】:2011-08-08 22:47:04
【问题描述】:

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

他们检查了 GAC,但在那里没有看到。

我已经用反射器检查了 dll,以确认我给了他们正确的新 dll。

这是一个 asp.net 2.0 网站,服务器是 2003。我不确定它最初是如何部署的,但它在 C:\Windows\Microsoft.NET\Framework64\v2 中有一个旧 dll 的副本。 0.50727\临时 ASP.NET 文件\NAME_services################\assembly\dl3###################\在 D:\xxxx\Sites\NAME\Services\obj\Release 中。是否可以使用其中之一或构建旧的,甚至只是将其缓存在内存中?

【问题讨论】:

  • 错误在哪里?是在 aspx 页面中还是在代码中的某个地方?
  • 它在代码中,我可以在 dll 的 diss 程序集中看到修复。

标签: asp.net deployment iis-6


【解决方案1】:

您不必停止 IIS 来部署更新,只需将它们复制过来。

另外,如果他们只复制了 DLL,但您的修复位于 .aspx 文件中,则它不会显示。你真的应该做一个完整的部署。

【讨论】:

  • 修复肯定在dll里面,我可以用reflector反汇编dll看看修复。
  • 这不适用于数量惊人的大量案例。这取决于应用程序是如何开发的。 IIS 缓存文件,有时它需要清除临时文件。
【解决方案2】:

核对您的临时 asp.net 文件夹内容。不过,不确定为什么更新没有自动编译。

【讨论】:

  • 这种部署会自动编译吗?如果是这样,那可能是问题所在,因为他们只是发布了 dll,而不是源代码。
  • @dwidel,有时 Asp.Net 会出错,只是不会将文件复制到 Temporary Asp.Net Files 文件夹中。将其吹走将确保它自行解决。
  • @dwidel 永远不要把你的源代码放在服务器上。 @Andy 是正确的 - 这有时会发生。幸好这种情况很少见。
  • 这种情况经常发生,您不妨削弱临时文件夹作为发布脚本的一部分
【解决方案3】:

我们遇到了同样的问题,但有一些复杂的问题,我们有很多网站,所以“清除所有临时”并重新启动 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 文件夹级别及以下查找要刷新的文件。你可能会感到惊讶。

【讨论】:

  • 感谢您的澄清。我们有一个网站指向 Framework,另一个指向 Framework64。
【解决方案4】:

我们将项目源代码复制到一个新文件夹并重新打开了解决方案。这以某种方式诱使 Visual Studio 不使用 DLL 的缓存版本。希望我们知道为什么会这样,但这为我们解决了问题。

【讨论】:

    猜你喜欢
    • 2018-09-30
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2017-03-05
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多