替换沙盒解决方案中的事件接收器

在 SharePoint 外接程序模型中处理 SharePoint 中的事件的方法与使用完全信任代码或与在编码的沙盒解决方案中略有不同。 在以前典型的解决方案中,事件接收器使用 SharePoint 服务器端对象模型创建,并通过解决方案包部署(在 SharePoint 服务器上执行代码)。

但是,在 SharePoint 外接程序模型中,事件接收器的实现是在托管事件接收器的 Web 服务器上执行的,这称为远程事件接收器 (RER)。 在很多情况下,都可以通过远程事件接收器实现事件接收器的替换。

本文介绍了各种选项和设计注意事项。

注意

基于代码的沙盒解决方案在 2014 年被弃用,而 SharePoint Online 开启了完全移除此功能的过程。 基于代码的沙盒解决方案在 SharePoint 2013 和 SharePoint 2016 中也同样被弃用。

取代事件接收器的方法

方法 设计注意事项和详细信息
远程事件接收器
  • 需要托管基础结构。
  • 托管基础结构必须高度可用。
  • 托管远程事件接收器的服务端点必须配置为匿名身份验证。
  • 如果使用 SharePoint Online,则需要受信任的第三方证书。
  • 不适合长时间运行的操作。
  • 附加在外接程序的上下文外部的远程事件接收器(使用控制台应用程序或 PowerShell 附加)在被调用时将不会接收 SharePoint 上下文令牌,必须区分仅限外接程序的权限或使用 SharePointOnlineCredentials 类。
  • 无重试机制。
Webhook
  • 需要托管基础结构。
  • 托管基础结构必须高度可用。
  • 不支持同步事件。
  • 流程在事件发生后进行更改。
  • 目前在本地 SharePoint 版本中不可用。
监视更改的远程计时器作业
  • 使用 ChangeQuery 对象监视站点或列表是否有修改。 此模式是远程事件接收器的替代方法。
  • 需要托管基础结构。
  • 流程在事件发生后进行更改。
  • 使用轮询机制处理更改。

从网站移除沙盒代码

从网站停用现有沙盒解决方案时,使用声明性选项部署的任何资产或文件都不会被移除。 但是沙盒解决方案中的功能会自动停用,并移除事件接收器。

另请参阅