ASP.NET发布:旧的DLL没有被覆盖,而是回来了

时间:2010-02-05 01:22:20

标签: asp.net visual-studio-2008 publishing

使用VS2008sp1,我将Web应用程序发布到单独的IIS7.5服务器。它已经好了一段时间,但是遇到了这种奇怪的情况: - 处理生成自己的DLL的类文件。 - 在当地工作 - 发布到服务器时,旧的DLL文件与所有其他较新的文件(基于时间戳)一起存在。应用程序在尝试执行新的类方法时会死掉(它知道正确的方法调用,但无法找到方法。例如找不到方法:class.method()) - 关闭IIS服务。已删除的DLL文件,重新发布:仍然显示较旧的DLL(???)

它显然在某个地方缓存/保护,但我如何解决这个发布作为一个群体?我是否每次都需要重启IIS?

3 个答案:

答案 0 :(得分:1)

通常这是机器和服务器上的时间差异的问题。

如果您的计算机稍微提前运行,那么visual studio在发布期间不会覆盖服务器上某些文件。

最好的办法是删除服务器上的所有内容,然后发布。或者,让时钟同步。但是,即使这样,有时像资源文件这样的东西仍然无法正确发布。

VS试图在这里过于聪明。

另一件事是检查“删除发布前的所有现有文件”框(如果可用)。

答案 1 :(得分:0)

删除位于与您的特定应用程序相关的服务器上的framework文件夹中的临时ASP.Net文件。

%SystemRoot%\ Microsoft.Net \ Framework \ v \ Temporary ASP.Net Files

答案 2 :(得分:0)

如果重新启动IIs,它将清除所有缓存的DLL - 这是确保安装运行最新版本的最佳方法。 MS Docs说它会重新加载并且并排运行,但为什么不清除那些傻逼呢?