我在通过Internet访问的Window 2003服务器上进行远程调试。我的XP开发盒上安装了VS 2008 SP1。
我在远程服务器上启动了该站点,并将其附加到远程服务器上的所有w3wp.exe进程。我注意到.dll没有加载符号文件。当我尝试从本地计算机加载相应的.pdb文件时,它说文件不匹配。我取消选中“要求源文件与原始版本完全匹配”。远程服务器上的程序集与我的开发框上的程序集相同。该站点和.dll已从dev boc复制到远程服务器,并且代码自此没有更改。所以我知道.dll和.pdb文件应该匹配,或者至少我需要强制匹配。
问题:
如何加载.pdb文件?我知道除非加载符号文件,否则不会触发断点。我注意到远程服务器上的“Temporary ASP.NET Files”文件夹中不存在.pdb文件。 .dll确实。
在VS内部远程启动调试的正确顺序是什么? (远程设置已完成,我可以看到远程进程)。 在VS中,我将起始页作为远程站点的URL。我开始没有调试,然后附加到遥控器上的w3wp.exe。这都是吗?
答案 0 :(得分:4)
您运行的是网站还是Web应用程序(它是一个已编译的项目,您部署了DLL,还是您部署的aspx和aspx.cs文件的集合)?
如果它是Web应用程序,您是部署了发布版本还是调试版本?在“调试”发布版本时,您将无法访问断点,因为代码已经过相当大的优化。
您是否在web.config编译部分设置了“debug = true”?如果没有,再次调试将很困难。
最后,我在远程调试时使用的步骤是:
如果断点是空心的(薄红色圆圈而不是填充的磁盘),我会经常检查VS中的堆栈窗口,看看有没有加载的东西。