【问题标题】:SharePoint 2010 event handlerSharePoint 2010 事件处理程序
【发布时间】:2015-01-13 02:52:10
【问题描述】:

我正在做一场噩梦,试图调试 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);
    }
}

如果我在事件接收器中放置一个断点,它不会停止。

【问题讨论】:

    标签: sharepoint event-receiver


    【解决方案1】:

    转到您的 Visual Studio 调试 -> 附加进程 -> 在列表中附加所有可用的 w3wp.exe。现在尝试在网络浏览器中激活该功能。你的断点应该被加载并命中。

    【讨论】:

      【解决方案2】:

      我个人更喜欢将 System.diagnostic.debug.WriteLn() 消息添加到事件接收器代码中,并使用服务器上的 DebugView 查看它们。每次都附加到工作进程很烦人。

      【讨论】:

        【解决方案3】:

        首先要确保最新的程序集版本能够提交给 GAC。最简单的方法是使用项目上下文菜单中的“部署”选项或直接按 F5。

        那么请告诉我们这个代码分配在哪里

        //将事件接收器添加到列表中 list.EventReceivers.Add(SPEventReceiverType.ItemAdded, "DatasEvent, 版本 = 1.0.0.0, 文化 = 中性, PublicKeyToken = 6f4db1e1fedbed57", "DatasEvent.DatasEventReceiver");

        如果将其放置在功能接收器中,请确保在尝试附加到与目标 Web 应用程序对应的应用程序池相对应的 w3wp.exe 之前已激活它。

        【讨论】:

          【解决方案4】:

          我会尝试:

          Debugger.Launch();
          

          仅在开发环境中,否则会尝试为每个请求进行调试。

          我会把它放在添加事件接收器之前。

          【讨论】:

            【解决方案5】:

            ItemAdded 处理添加项目后发生的异步事件。执行是通过计时器作业(而不是在当前工作进程 w3wp 中)执行的。所以你应该附加到 OWSTIMER 进程来调试它。

            【讨论】:

              【解决方案6】:

              您应该在两个 web.config 文件中启用 sharepoint 的调试。 您应该使用 Debugger.Launch() 来停止运行时。 例如。部署和激活事件触发后(在 EventReceiver 的代码中有一个 Debugger.Launch() 命令)并且 VS 要求您调试代码。

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

              this links helped me a lot

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2011-11-03
                • 1970-01-01
                • 2013-02-08
                • 1970-01-01
                • 2011-09-07
                • 1970-01-01
                • 2011-09-10
                相关资源
                最近更新 更多