远程调试Web部件

时间:2010-10-19 21:04:31

标签: visual-studio-2008 debugging sharepoint-2007 remote-debugging wspbuilder

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

我有两个VMWare虚拟机。

其中一个托管SharePoint MOSS 2007共享服务和中央管理员,并且还具有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页面。 / p>

从Visual Studio我附加到位于Web前端的w3wp.exp,在那里我可以看到Remote Debugger Monitor告诉我它已成功连接。

现在无论我做什么VS都不会在断点处停下来。此外,断点图标显示消息“不会点击断点。此文档没有加载符号。”

在这种情况下,.pdb从何处加载?我该怎么做才能让它成功加载.pdb文件?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

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

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

希望这有帮助!

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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