我编写了一个SharePoint EventReceiver(Windows SharePoint Services 3.0),并希望使用在不同计算机上运行的Visual Studio 2008 SP1进行调试。我尝试了以下步骤:
不幸的是Visual Studio告诉我,我设置的断点不会被击中。我想在将程序集安装到GAC时,调试符号(或调试所需的任何内容)都会丢失。
如何调试我的事件接收器?据我所知,通过自定义程序集扩展SharePoint的唯一方法是将它们部署到GAC - 我在这里缺少一些东西吗?
最诚挚的问候 Oliver Hanappi
答案 0 :(得分:1)
您可以尝试手动将程序集的调试(.pdb)文件复制到目标计算机上的c:\ windows \ assembly \ MSIL \ ASSEMBLYNAME \ VERSION文件夹中,然后重新启动IIS。
答案 1 :(得分:0)
我今天早上遇到了这个问题。关于没有被击中的断点,我得到了同样的错误。在我的情况下,这是因为我附加了错误的w3wp.exe进程。如果您在服务器上运行了多个w3wp.exe进程 - 请确保附加到正确的调试过程。
顺便说一句 - 你没有提到在你的步骤中的任何地方运行iisreset
。将自定义事件收到的程序集复制到GAC后 - 请确保运行iisreset
,以便Web服务器正在接收您的更改。
希望有所帮助!!
答案 2 :(得分:0)
这个问题很老,但我只想分享以下命令,以帮助选择正确的w3wp.exe进程。
假设您已经部署并启用了事件接收器。
在命令行上执行此命令
%windir%\system32\inetsrv\appcmd.exe list wp
这将打印PID并指示其用于哪个站点。
C:\Windows\system32>%windir%\system32\inetsrv\appcmd.exe list wp
WP "11632" (applicationPool:4a8cbf60637942ff9a2486d0e682ac54)
WP "16800" (applicationPool:SharePoint Central Administration v4)
WP "23648" (applicationPool:teams)
现在,您可以轻松地将Visual Studio调试器附加到正确的进程。 例如,对于SP站点 team ,我将附加到PID 23648