问题排错 SharePoint 2010 Web 部件

3
我正在尝试手动调试在本地SharePoint中部署的Web部件,但我无法调试。
我已经完成以下步骤:
  • 在web.config中设置<compilation batch="false" debug="true" optimizeCompilations="true">
  • 设置断点(例如:在Page_Load方法处)。
  • 将包含Web部件的项目部署到我的本地SharePoint。
  • 手动将.pdb文件复制到c:/inetpub/wwwroot/wss/VirtualDirectories/80/bin文件夹中。
  • 将Visual Studio附加到所有正在运行的w3wp.exe实例(共有三个)。
但是,Visual Studio报告“当前不会命中断点。未加载此文档的符号”,因此当我浏览包含Web部件的页面时,Visual Studio不会命中断点。
6个回答

5

已解决:我之前选择了自动确定要调试的代码类型,Visual Studio 自动选择了本地代码。我把这个选项改成了调试这些代码类型:托管(...),问题得以解决。


2
你使用的是哪个版本的IDE?你应该可以使用VS2010按F5进行调试。你确定你的调试器已经连接到正确的w3wp进程了吗?你手动部署Web Part吗?如果是这样,可能会缓存程序集,需要重新启动应用程序池。

Visual Studio 2010连接到所有正在运行的w3wp进程。我正在手动部署Web部件,并且已经回收了应用程序池。 - mmutilva
为什么不尝试使用SharePoint工具来部署和调试呢? - Jason

1
这个问题的常见原因是在已经运行Visual Studio的机器上安装SharePoint。如果你收到这样的消息:“断点当前无法命中。此文档尚未加载任何符号”,最简单的解决方法就是重新在机器上安装Visual Studio。然后它就能正常工作了。

0

我最喜欢的技巧是:不要调试SharePoint Web Parts!而是构建一个Windows Console应用程序,在那里进行调试。

1)创建一个Windows Console应用程序
2)从Web Part中复制所有相关代码
3)将任何ASP.NET控件输出替换为Console输出
4)进行调试和逐步执行
5)将修复后的代码复制回Web Part。

干杯!


0
  • 检查您的开发环境中是否有多个 Web 前端服务器,如果有,请删除它们,只留下实际运行 VS 的服务器。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接