如何使用远程调试器调试SharePoint EventReceiver?

如何使用远程调试器调试SharePoint EventReceiver?,sharepoint,remote-debugging,event-receiver,Sharepoint,Remote Debugging,Event Receiver,我已经编写了一个SharePoint EventReceiver(Windows SharePoint Services 3.0),并希望使用在不同计算机上运行的Visual Studio 2008 SP1对其进行调试。我尝试了以下步骤: 安装事件接收器(我知道这是可行的,因为日志文件证明代码已执行) 在SharePoint服务器的GAC中注册我的事件接收器类库(在调试模式下构建) 正在SharePoint服务器上启动Visual Studio远程调试监视器 从本地计算机附加到SharePoi

我已经编写了一个SharePoint EventReceiver(Windows SharePoint Services 3.0),并希望使用在不同计算机上运行的Visual Studio 2008 SP1对其进行调试。我尝试了以下步骤:

  • 安装事件接收器(我知道这是可行的,因为日志文件证明代码已执行)
  • 在SharePoint服务器的GAC中注册我的事件接收器类库(在调试模式下构建)
  • 正在SharePoint服务器上启动Visual Studio远程调试监视器
  • 从本地计算机附加到SharePoint服务器上的进程w3wp.exe
不幸的是,VisualStudio告诉我设置的断点不会被命中。我猜在将程序集安装到GAC时,调试符号(或调试所需的任何东西)丢失了

如何调试事件接收器?据我所知,通过自定义程序集扩展SharePoint的唯一方法是将它们部署到GAC—我在这里遗漏了什么吗

致以最诚挚的问候

Oliver Hanappi

您可以尝试手动将程序集的调试(.pdb)文件复制到目标计算机上的c:\windows\assembly\MSIL\ASSEMBLYNAME\VERSION文件夹,然后重新启动IIS。

您可以尝试手动复制程序集的调试(.pdb)文件保存到目标计算机上的c:\windows\assembly\MSIL\ASSEMBLYNAME\VERSION文件夹中,然后重新启动IIS。

我今天早上遇到了这个问题。我得到了关于断点未被命中的相同错误。在我的例子中,这是因为我连接了错误的w3wp.exe进程。如果服务器上运行多个w3wp.exe进程,请确保连接到正确的进程进行调试

顺便说一句,您没有提到在步骤中的任何地方运行
iisreset
。将自定义事件接收程序集复制到GAC后,请确保运行
iisreset
,以便web服务器接收您的更改


希望有帮助

我今天早上才遇到这个问题。我得到了关于断点未被命中的相同错误。在我的例子中,这是因为我连接了错误的w3wp.exe进程。如果服务器上运行多个w3wp.exe进程,请确保连接到正确的进程进行调试

顺便说一句,您没有提到在步骤中的任何地方运行
iisreset
。将自定义事件接收程序集复制到GAC后,请确保运行
iisreset
,以便web服务器接收您的更改


希望有帮助

这个问题很老了,但我只想与大家分享以下命令,它将有助于选择正确的w3wp.exe进程

假设您已经部署并启用了事件接收器

在命令行上执行此命令

%windir%\system32\inetsrv\appcmd.exe list wp
这将打印PID,并指示其用于eg的位置

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)
现在,您可以轻松地将VisualStudio调试器附加到正确的进程。
例如,对于SP站点团队我将附加到PID 23648

这个问题非常古老,但我只想分享以下命令,这将有助于选择正确的w3wp.exe进程

假设您已经部署并启用了事件接收器

在命令行上执行此命令

%windir%\system32\inetsrv\appcmd.exe list wp
这将打印PID,并指示其用于eg的位置

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)
现在,您可以轻松地将VisualStudio调试器附加到正确的进程。 例如,对于SP站点团队我将附加到PID 23648