Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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
C# 如何将事件接收器附加到生产服务器上的列表/文档库?_C#_Sharepoint_Sharepoint 2010_Event Receiver - Fatal编程技术网

C# 如何将事件接收器附加到生产服务器上的列表/文档库?

C# 如何将事件接收器附加到生产服务器上的列表/文档库?,c#,sharepoint,sharepoint-2010,event-receiver,C#,Sharepoint,Sharepoint 2010,Event Receiver,我已在Share Point 2010中创建/绑定事件接收器到文档库,以读取excel文件的内容并从内容加载列表 在开发过程中一切都很好,我没有访问生产服务器的权限,所以我记录了一张I.t deploy到生产服务器的票证(附加ER的.wsp) 这家伙已经在生产中部署/激活了ER,现在我不知道如何将其附加到特定的文档库,以及如何验证是否/何时附加 如果您使用VS2010 SharePoint模板,并且它要求您提供特定的库,那么您可能需要为生产库修改它。在VS解决方案中,查看elements.xml

我已在Share Point 2010中创建/绑定事件接收器到文档库,以读取excel文件的内容并从内容加载列表

在开发过程中一切都很好,我没有访问生产服务器的权限,所以我记录了一张I.t deploy到生产服务器的票证(附加ER的.wsp)

这家伙已经在生产中部署/激活了ER,现在我不知道如何将其附加到特定的文档库,以及如何验证是否/何时附加

  • 如果您使用VS2010 SharePoint模板,并且它要求您提供特定的库,那么您可能需要为生产库修改它。在VS解决方案中,查看elements.xml文件。你应该在顶部看到一个。如果事件处理程序的作用域为web,则可以将“…”更改为实际的库名称。示例:

  • 重建WSP。您的支持组应运行add spsolution和install spsolution powershell命令,以将其添加并安装到服务器场

  • 如果您可以在“问题”功能(站点设置->管理站点功能)中访问子站点,您应该会看到您的事件处理程序存在但已停用

  • 单击以激活它

  • 如果没有服务器访问权限(查看14配置单元中的日志),很难真正查看它是否已连接。如果您的支持团队使用SharePoint Manager,他们可以查看处理程序是否真的连接到相关库。除此之外,我看到人们所做的是在他们的处理程序(item added/updated/etc)中放入一小段代码,当库启动时,它将更新库中的状态列(例如“handler Fired”)。这样你就可以看到它是否在开火。此外,您可以将代码中可能出现的任何错误消息放入此列(例如,“无法将文件加载到列表”,等等)


  • 如果您的WSP在生产时在GAC中部署了包含事件接收器的dll,则可以使用powershell将事件接收器附加到列表/库

    $type = "ItemAdding" #or any other type, like ItemDeleting, ItemAdded, ItemUpdating ...
    $assembly = "YourAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5eff...(here goes assebly's token"
    $class = "Your Class"
    
    $list.EventReceivers.Add($type, $assembly, $class)
    

    来源:

    您在开发环境中是如何做到这一点的?您认为是什么阻止了您在生产环境中做到这一点?@OndrejTucny:在VS2010的初始阶段创建事件接收器时,它会询问您希望将新ER附加到哪个特定列表/文档库,这就是它如何附加到之前,但后来我从bin复制了.WSP并将其部署到生产环境中,现在不知道如何将其附加到文档库中。