Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么ASP.NET加载了错误版本的web应用程序集?_Asp.net_Visual Studio 2008_Iis - Fatal编程技术网

为什么ASP.NET加载了错误版本的web应用程序集?

为什么ASP.NET加载了错误版本的web应用程序集?,asp.net,visual-studio-2008,iis,Asp.net,Visual Studio 2008,Iis,我在VisualStudio2008中有一个web应用程序,其中包含一个web服务和两个web表单。当我尝试调试时,我的断点都不可用;如果我将鼠标移到它们上面,我会看到: “不会命中断点。源代码与原始版本不同。” 加载的调试模块列表包括我的程序集的旧版本1.0.*。后来我将其更改为1.1.0.0,但从未加载该版本。我尝试停止IIS并从临时ASP.NET文件中删除这些文件,但当我重新启动它时,1.0.*版本立即恢复!构建输出肯定是1.1.0.0而不是1.0.*,那么它可能来自哪里呢?当我使用VS开

我在VisualStudio2008中有一个web应用程序,其中包含一个web服务和两个web表单。当我尝试调试时,我的断点都不可用;如果我将鼠标移到它们上面,我会看到:

“不会命中断点。源代码与原始版本不同。”

加载的调试模块列表包括我的程序集的旧版本1.0.*。后来我将其更改为1.1.0.0,但从未加载该版本。我尝试停止IIS并从临时ASP.NET文件中删除这些文件,但当我重新启动它时,1.0.*版本立即恢复!构建输出肯定是1.1.0.0而不是1.0.*,那么它可能来自哪里呢?当我使用VS开发服务器而不是IIS时,也会发生同样的情况


谢谢

当DLL缓存在临时ASP.NET文件文件夹中时,我看到了这种情况。尝试执行“全部重建”,如果仍在进行,请从临时文件夹中删除DLL,或完全清除文件夹内容。

我遇到了一个非常类似的问题:

  • 引用包含资源的程序集的Web应用程序
  • 当使用非默认区域性(资源内置到satellite*.resources.dll程序集中的区域性)时,一些资源使用正常,但一些资源返回默认语言
  • 删除临时ASP.NET文件或清除\Build没有帮助
  • 问题是,大多数可用于诊断程序集加载问题的工具(Process Explorer用于加载程序集和路径的列表,fuslogvw用于程序集绑定日志)根本不显示附属程序集


    但最后我发现在我的web应用程序bin文件夹中有一个旧版本的附属程序集(仍然不知道它是如何到达那里的),并且它在程序集探测\加载过程中获得了优先级…

    看起来这是在文件LastWriteTime未更新时触发的。通过使用完全相同的LastWriteTime构建两个完全独立的dll,并将它们一个接一个地部署到IIS中,我可以可靠地再现这一点。如果我随后使用GNU touch在LastWriteTime更新文件,IIS将获取当前的正确版本。

    您可能已经从GAC或项目源外部的其他位置引用了1.0程序集。在“引用”下的树中找到它并检查路径。不幸的是,这不起作用。我还尝试在IIS中删除并重新创建虚拟目录。您是否有过期的引用?没有,我只是对web服务进行了一些小的代码更改。尚未更改任何引用。是否使用web服务的web引用?这很奇怪:我在默认bin目录的根目录中找到了生成输出的副本,它是1.0.*版本。bin的根目录中不应该有构建输出,只在x86/Debug子目录中——不知道它是如何到达那里的。当我完全删除bin和obj目录,然后重新构建时,它工作了。谢谢