0

我的 SharePoint 暂存环境中有一个非常奇怪的情况。我们最近建立了一个新的 SharePoint 2010 服务器(单个 WFE + 一个 DB 服务器),并从我们现有的环境中附加了一个备份的内容数据库。我们创建了一个新的 Web 应用程序,并将其指向附加的内容数据库。我们所有的网站集、网站、列表等都出现了,而且看起来不错。

在移动数据库之前,我们已经将一些自定义内容类型部署到我们现有的环境中,并且我们想要升级这些内容类型。具体来说,我们将事件接收器附加到内容类型(使用代码,而不是 XML),并且我们需要更新这些事件接收器指向的程序集版本。所以我们运行我们通常的代码(特征接收器的一部分)来删除事件接收器,但令我们惊讶的是,接收器仍然存在。

为了纠正这种情况,我们编写了一个控制台应用程序,它遍历每个网站集根站点中的所有内容类型 (SPWeb.ContentTypes) 并删除它们,然后对每个内容类型调用 SPContentType.Update(true)。对 Update 的调用没有返回任何错误,但让我们更加惊讶的是,SharePoint 仍然报告事件接收器已附加。

在最后的努力中,我们甚至进入了内容数据库(在拍摄快照之后——请记住,这是暂存,而不是生产!)并从 EventReceivers 表中手动删除了有问题的接收器。我们认为这至少应该有某种效果。唉,SharePoint 仍然报告接收者存在。

我们一直在内容类型事件接收器上执行这些类型的升级,但从未在任何其他 SharePoint 场上遇到此问题。这听起来像是环境问题吗?是否可能是由于移动内容数据库而导致的?任何帮助将不胜感激,因为在这一点上我们完全被难住了。

4

1 回答 1

0

首先,我永远不会建议更改数据库中的任何内容。从长远来看,它肯定会给您带来麻烦。

您确实提到您尝试从 Web 级别删除事件接收器,但不确定您是否尝试从列表/库级别删除它

使用ContentTypeUsage类并尝试从列表/库级别删除

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcontenttypeusage.aspx

于 2012-01-23T00:17:37.927 回答