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



我已经创建/绑定了一个事件接收器到sharepoint 2010的文档库中,以读取excel文件的内容并从内容中加载列表。

在开发中一切都很好,我没有访问生产服务器的权限,所以我记录了一张it部署到生产服务器的票据(附加ER的。wsp)。

这个家伙已经在生产中部署/激活了ER,现在我不确定如何将其附加到特定的文档库以及如何验证如果/当它附加

  1. 如果你使用VS2010 SharePoint模板,它要求你提供一个特定的库,你可能必须为你的生产库修改它。在VS解决方案中,查看elements.xml文件。你应该在顶部看到a。如果你的事件处理程序的作用域是web,你可以把"…"改成实际的库名。例子:.

  2. 重建WSP。您的支持小组应该运行add-spsolution和install-spsolution powershell命令来添加它并将其安装到farm。

  3. 如果你可以进入子网站的问题功能(网站设置->管理网站功能),你应该看到你的事件处理程序存在,但停用。

  4. 单击激活。

  5. 如果没有服务器访问(查看14 hive中的日志),很难真正看到它是否被附加。如果您的支持团队使用SharePoint Manager,他们可以查看处理程序是否真的附加到有问题的库。除此之外,我所看到的人们所做的是在他们的处理程序(item added/updated/etc)中放入一小块代码,当它触发时更新库上的状态列(例如:"处理程序")。这样你就能看到它是否在发射。此外,您可以将代码中可能得到的任何错误消息放入此列中(例如:

如果您的WSP将包含事件接收器的dll部署在生产环境中的GAC中,那么您可以使用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)

来源:http://naimmurati.wordpress.com/2012/03/22/add-modify-or-delete-list-event-receivers-with-powershell/

最新更新