我已经在互联网上搜寻 - 无济于事。祸了我。
我有.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
非常感谢任何帮助。
答案 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集成服务器。