【问题标题】:ASP.Net - is a new release of code is still using previous assemblies?ASP.Net - 新版本的代码是否仍在使用以前的程序集?
【发布时间】:2012-01-19 17:21:35
【问题描述】:

昨天,大约两年后,我们重新部署了我们的应用程序。代码没有改变,但组成项目结构已重新组织成更小的项目。直到今天(下午 5.29 点)我们的一位用户指出了一个问题,这一切似乎都很好。从遇到的错误的性质来看,很明显新部署的应用程序没有使用重新组织的解决方案中的新 DLL,而是仍在使用旧的。我删除了仍在部署 bin 文件夹中的旧 DLL 并意识到这会导致应用程序崩溃,从而证实了这一点。

我已经删除了%WINDIR%/Microsoft.Net/Framework/v2.0/Temporary Internet Files 下的内容,但问题仍然存在。如果有人能对此进行解释和/或提出永久可靠的解决方案,我将不胜感激。

【问题讨论】:

  • 在您的测试环境中一切正常吗?
  • 是的,在暂存环境中也是如此。

标签: c# asp.net deployment iis-7


【解决方案1】:

我们已经看到 3 种不同的情况导致了这个确切的问题:

1) 临时 Internet 文件中的缓存 DLL。请记住,如果您已将应用程序升级到 .Net 4,则此目录位于 v4.0.30319 子目录中。

2) 在 IIS 或用户浏览器中缓存页面。将网站上的过期时间更改为立即(至少暂时)通常可以解决此问题。

3) 应该更新但没有更新的 DLL。此问题分为两类:

a) DLL 上的版本未更新,因此未部署新版本。

b) 开发人员未正确签入或在构建机器上签出要部署的代码。

我们一直能够通过验证上述各项来解决问题。

【讨论】:

  • 感谢您的回复。我们在以下过程中解决了这个问题: 1. 删除了 bin 文件夹 2. 随后意识到在 web.config(在 HttpModules 部分)中提到了旧命名空间之一,并将其​​更新为指向新命名空间.
【解决方案2】:

我遇到了类似的问题。有时调试工作,有时它没有。我发现在 Debug > Windows > Modules 视图中加载了多个 .dll(旧的和新的)。 我发现我在同一个解决方案(.Net 4 和 4.5.1)中有多个版本的 .Net 框架。

解决方案: 停止 IIS,清除 both .Net 框架临时文件夹。清洗溶液。将单个 4.5.1 项目改回 4 并重建。现在我没有问题了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2012-10-03
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多