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