调试在.Net 4.0应用程序池下运行的.Net 3.5代码

时间:2010-09-21 16:58:36

标签: asp.net .net-4.0

我已经在互联网上搜寻 - 无济于事。祸了我。

我有.Net框架在.Net framework 4.0 App Pool下运行。

该网站引用了为.Net 3.5编译的各种程序集。

我确保dll和pdb的相同版本位于我尝试调试的3.5代码的bin文件夹中,以及4.0网站的引用路径。即我尝试调试的代码与加载到应用程序池进程中的程序集相匹配。

当我使用VS2008连接调试器并打开.Net 3.5代码的解决方案时,我设置的断点被标记为无效(即标有感叹号)。当我在调用我试图调试的代码的浏览器页面上点击刷新时,VS2008引发了一个非托管代码异常。

我研究过程中并行代码执行,这是在这个实例中发生的,并且工作得非常好;但对于我的生活,我在这种情况下找不到任何有关调试的信息。

将.Net 3.5项目转换为使用.Net 4.0不是一个选项,也不可能将它们转换为使用VS2010并将它们作为目标.Net framework 3.5

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

当App Pool以.NET 4.0为目标时,这意味着您的站点在CLR 4.0下运行,并且在此CLR中加载了针对.NET 3.5编译的程序集。 VS2008无法调试运行CLR 4.0的进程,只能运行CLR 2.0。

因此,如果您要调试,请将AppPool CLR更改为2.0或使用VS2010,甚至更好地使用您用于开发此站点的Visual Studio集成服务器。