Приемники событий типа контента SharePoint невозможно удалить - PullRequest
0 голосов
/ 22 января 2012

У меня очень странная ситуация в моей промежуточной среде SharePoint.Недавно мы установили новый сервер SharePoint 2010 (один WFE + сервер БД) и подключили резервную копию базы данных контента из нашей существующей среды.Мы создали новое веб-приложение и указали его на приложенную базу данных контента.Появились все наши семейства сайтов, сайты, списки и т. Д., И все выглядело хорошо.

Мы развернули несколько пользовательских типов контента в нашей существующей среде до перемещения базы данных, и мы хотели обновить эти типы контента,В частности, мы присоединяем получатели событий к типам контента (используя код, а не XML), и нам нужно было обновить версию сборки, на которую указывают эти получатели событий.Таким образом, мы выполнили наш обычный код (часть приемника функций) для удаления получателей событий, но, к нашему удивлению, получатели остались.

В попытке исправить ситуацию мы написали консольное приложение, которое выполняет итерациювсе типы контента (SPWeb.ContentTypes) в корневом сайте каждого семейства сайтов и удаляет их, а затем вызывает SPContentType.Update (true) для каждого типа контента.После вызова Update не возвращаются ошибки, но, к нашему еще большему удивлению, SharePoint по-прежнему сообщает, что получатели событий подключены.

В последнем отчаянном усилии мы даже вошли в базу данных контента (послесделать снимок - и помните, что это постановка, а не производство!) и вручную УДАЛИТЬ получателей-нарушителей из таблицы EventReceivers.Мы полагали, что это должно иметь хоть какой-то эффект.Увы, SharePoint по-прежнему сообщает, что получатели присутствуют.

Мы выполняем эти типы обновлений для получателей событий типа контента все время, но никогда не сталкивались с этой проблемой ни в одной другой ферме SharePoint.Похоже ли это на экологическую проблему?Это могло быть вызвано перемещением базы данных контента?Любая помощь будет принята с благодарностью, потому что мы полностью озадачены.

1 Ответ

0 голосов
/ 23 января 2012

Во-первых, я никогда не буду рекомендовать что-либо менять в БД.Это наверняка доставит вам неприятности в долгосрочной перспективе.

Вы упоминали, что пытались удалить приемник событий с веб-уровня, но не уверены, пытались ли вы удалить его из уровня списка / библиотеки

Используйте класс ContentTypeUsage и попробуйте удалить из уровня списка / библиотеки

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...