【发布时间】:2012-01-23 08:17:37
【问题描述】:
我在我的 SharePoint 暂存环境中遇到了一个非常奇怪的情况。我们最近建立了一个新的 SharePoint 2010 服务器(单个 WFE + 一个 DB 服务器),并从我们现有的环境中附加了一个备份的内容数据库。我们创建了一个新的 Web 应用程序,并将其指向附加的内容数据库。我们所有的网站集、网站、列表等都出现了,一切看起来都不错。
在移动数据库之前,我们已将一些自定义内容类型部署到现有环境中,并且我们希望升级这些内容类型。具体来说,我们将事件接收器附加到内容类型(使用代码,而不是 XML),并且我们需要更新这些事件接收器指向的程序集版本。所以我们运行了我们常用的代码(特征接收器的一部分)来删除事件接收器,但令我们惊讶的是,接收器仍然存在。
为了纠正这种情况,我们编写了一个控制台应用程序,它遍历每个网站集根站点中的所有内容类型 (SPWeb.ContentTypes) 并删除它们,然后在每个网站集上调用 SPContentType.Update(true)内容类型。调用 Update 没有返回任何错误,但更令我们惊讶的是,SharePoint 仍然报告事件接收器已附加。
在最后的努力中,我们甚至进入了内容数据库(在拍摄快照之后——请记住,这是暂存,而不是生产!)并从 EventReceivers 表中手动删除了有问题的接收器。我们认为这至少应该有某种效果。唉,SharePoint 仍然报告接收者在场。
我们一直在内容类型事件接收器上执行这些类型的升级,但从未在任何其他 SharePoint 场上遇到过此问题。这听起来像环境问题吗?是否可能是由于移动内容数据库而导致的?任何帮助将不胜感激,因为我们在这一点上完全被难住了。
【问题讨论】:
-
您能否提供用于添加事件接收器的代码以及无法删除它们的代码?
-
我们的问题的答案已经发布在这里:sharepoint.stackexchange.com/questions/27466/….
标签: sharepoint-2010 event-receiver