Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SharePoint 2010事件处理程序_Sharepoint_Event Receiver - Fatal编程技术网

SharePoint 2010事件处理程序

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

我在尝试调试Sharepoint列表的事件接收器时遇到了一个噩梦。 这是我正在做的代码:

//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会要求您调试代码

不需要使用“附加到进程”,但这是另一种可能的调试方式