在Internet上为ASP.NET进行远程调试时没有遇到断点

Abd*_*bdu 10 asp.net debugging

我在通过Internet访问的Window 2003服务器上进行远程调试.我的XP开发箱上安装了VS 2008 SP1.

我在远程服务器上启动了该站点,并将其附加到远程服务器上的所有w3wp.exe进程.我注意到.dll没有加载符号文件.当我尝试从本地计算机加载相应的.pdb文件时,它说文件不匹配.我取消选中"要求源文件与原始版本完全匹配".远程服务器上的程序集与我的开发框上的程序集相同.该站点和.dll已从dev boc复制到远程服务器,因此代码没有更改.所以我知道.dll和.pdb文件应该匹配,或者至少我需要强制匹配.

问题:

  1. 如何加载.pdb文件?我知道除非加载符号文件,否则不会触发断点.我注意到远程服务器上的"Temporary ASP.NET Files"文件夹中不存在.pdb文件..dll确实如此.

  2. 在VS内部远程启动调试的正确顺序是什么?(远程设置已完成,我可以看到远程进程).在VS中,我将起始页作为远程站点的URL.我开始没有调试,然后附加到遥控器上的w3wp.exe.这都是?

Zha*_*uid 5

您是否正在运行网站或 Web 应用程序(它是一个编译项目,您为其部署 DLL,还是您部署的 aspx 和 aspx.cs 文件的集合)?

如果是 Web 应用程序,您是部署发布版本还是调试版本?在“调试”发布版本时,您将无法命中断点,因为代码经过了大量优化。

您是否在 web.config 编译部分设置了“debug=true”?如果没有,再次调试将是困难的。

最后,我在远程调试时使用的步骤是:

  1. 部署文件的最新调试版本
  2. 远程服务器上的请求页面以启动/重新启动应用程序
  3. 确保 VS 远程调试监视器已启动并在远程服务器上运行
  4. 在 VS 中,转到工具(或调试)| 附加到进程...,确保在限定符中选择远程服务器,并为正确的应用程序池选择 w3wp.exe 等。
  5. 将触发断点的请求页面。
  6. 调试!

如果断点是空心的(细小的红色圆圈而不是填充的磁​​盘),我会经常检查 VS 中的堆栈窗口以查看已加载和未加载的内容。