2

我无法让 Visual Studio 2008 远程调试器达到断点。

我有两个 VMWare 虚拟机。

一个托管 SharePoint MOSS 2007 Shared Services 和 Central Admin,并且还安装了 Visual Studio 2008 Professional。我正在使用 WSPBuilder 来构建和部署我的 Web 部件。

另一台机器是 Web 前端,我已将远程调试文件夹复制到 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger 并启动了远程调试监视器。

我从 Visual Studio 创建了基本的 WSPBuilder 项目并使用默认的“Hello SharePoint”代码添加了 Web 部件功能,然后使用 WSPBuilder 菜单进行部署,在站点级别激活它并将其添加到测试 SharePoint 页面。

我从 Visual Studio 连接到位于 Web 前端的 w3wp.exp,在那里我可以看到远程调试器监视器告诉我它已成功连接。

现在无论我做什么 VS 都不会停在断点处。此外,断点图标显示消息“断点将不会被命中。没有为此文档加载任何符号。”

在这种情况下,.pdb 从哪里加载?我必须怎么做才能让它成功加载 .pdb 文件?

谢谢您的帮助。

4

3 回答 3

1

WSPBuilder 部署的程序集是在发布模式下构建的,不包含调试符号。为了加载调试符号,您需要在调试模式下构建解决方案/项目并覆盖 vm 中 bin/GAC 中的程序集。可以在 bin/Debug 下的 Visual Studio 项目文件夹中找到调试程序集。

如果您在覆盖 GAC 程序集时遇到问题,请暂时停止与 SharePoint 网站关联的应用程序池。

希望这可以帮助!

于 2010-10-19T23:14:49.477 回答
1

对于托管代码调试,VS2008 在远程机器上而不是在本地机器上查找符号。因此,您的 PDB 必须可供 Web 前端框上运行的 msvsmon.exe 实例访问(通过共享或将 PDB 复制到该机器)。

于 2010-10-19T23:20:05.167 回答
0

要加载调试符号,请检查以下几点...

  1. 如果您在远程计算机上的调试可执行文件是 32 位 exe,那么应该在远程计算机上运行的远程调试器也应该是“Visual Studio 2008 远程调试器”的 32 位版本,即使远程计算机的操作系统是 64 位机器。如果远程机器上的调试可执行文件是 64 位,那么应该使用“Visual Studio Remote Debugger (x64)”。

  2. 被远程调试的可执行文件的路径应该可以从安装 Visual Studio 的机器访问,并且可执行文件的 .pdb 文件应该存在于该路径中。

于 2018-05-22T14:21:39.713 回答