SharePoint 2010事件处理程序
我在尝试调试Sharepoint列表的事件接收器时遇到了一个噩梦。 这是我正在做的代码:SharePoint 2010事件处理程序,sharepoint,event-receiver,Sharepoint,Event Receiver,我在尝试调试Sharepoint列表的事件接收器时遇到了一个噩梦。 这是我正在做的代码: //Add an event receiver to the list list.EventReceivers.Add(SPEventReceiverType.ItemAdded, "DatasEvent, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 6f4db1e1fedbed57", "DatasEvent.DatasEventRece
//Add an event receiver to the list
list.EventReceivers.Add(SPEventReceiverType.ItemAdded, "DatasEvent, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 6f4db1e1fedbed57", "DatasEvent.DatasEventReceiver");
public override void ItemAdded(SPItemEventProperties properties)
{
try
{
int itemIdSql;
SPListItem item = properties.ListItem;
...
}
catch (SqlException ex)
{
Debug.WriteLine(ex.Message);
}
}
如果我在事件接收器中放置断点,它将不会停止。转到visual studio调试->附加进程->附加列表中所有可用的w3wp.exe。现在尝试在web浏览器中激活该功能。应该加载并命中断点。转到visual studio调试->附加进程->附加列表中所有可用的w3wp.exe。现在尝试在web浏览器中激活该功能。应该加载并命中断点。我个人更喜欢将System.diagnostic.debug.WriteLn()消息添加到事件接收器代码中,并使用服务器上的DebugView查看它们。每次附加到工作进程都很烦人。我个人更喜欢将System.diagnostic.debug.WriteLn()消息添加到事件接收器代码中,并使用服务器上的DebugView查看它们。每次附加到工作进程都很烦人。我会尝试:
Debugger.Launch();
只有在开发环境中,否则它将尝试对每个请求进行调试
我会在添加事件接收器之前放置它。我会尝试:
Debugger.Launch();
只有在开发环境中,否则它将尝试对每个请求进行调试
在添加事件接收器之前,我会先添加它。首先确保GAC获得最新的程序集版本。最简单的方法是使用项目上下文菜单中的“Deploy”选项,或者只需点击F5 那么请让我们知道这个代码分配在哪里 //将事件接收器添加到列表中 list.EventReceivers.Add(SPEventReceiverType.itemsadded,“DatasEvent,Version=1.0.0,Culture=neutral,PublicKeyToken=6f4db1e1fedbed57”,“DatasEvent.DataSeventReceivers”)
如果将其放置在功能接收器中,请确保在尝试连接到与目标web应用程序对应的应用程序池相对应的w3wp.exe之前将其激活。首先确保最新的程序集版本到达GAC。最简单的方法是使用项目上下文菜单中的“Deploy”选项,或者只需点击F5 那么请让我们知道这个代码分配在哪里 //将事件接收器添加到列表中 list.EventReceivers.Add(SPEventReceiverType.itemsadded,“DatasEvent,Version=1.0.0,Culture=neutral,PublicKeyToken=6f4db1e1fedbed57”,“DatasEvent.DataSeventReceivers”)
如果将其放置在功能接收器中,请确保在尝试连接到与目标web应用程序对应的应用程序池相对应的w3wp.exe之前将其激活。ItemAdded处理添加项目后发生的异步事件。执行是通过计时器作业执行的(而不是在当前工作进程w3wp中)。因此,您应该附加到OWSTIMER进程以对其进行调试。ItemAdded处理添加项后发生的异步事件。执行是通过计时器作业执行的(而不是在当前工作进程w3wp中)。因此,您应该附加到OWSTIMER进程以对其进行调试。您应该在两个web.config文件中启用sharepoint的调试。 您应该使用Debugger.Launch()停止运行时。 例如,在部署和激活事件激发后(在EventReceiver的代码中有一个Debugger.Launch()命令),VS会要求您调试代码 不需要使用“附加到进程”,但这是另一种可能的调试方式
您应该在两个web.config文件中启用sharepoint调试。 您应该使用Debugger.Launch()停止运行时。 例如,在部署和激活事件激发后(在EventReceiver的代码中有一个Debugger.Launch()命令),VS会要求您调试代码 不需要使用“附加到进程”,但这是另一种可能的调试方式