SharePoint Неизвестная ошибка SPRequest. Дополнительная информация: 0x80070005 - PullRequest
2 голосов
/ 24 февраля 2010

О, SharePoint ...

Я создал специальный приемник событий, который просто проверяет некоторые поля из списка и изменяет некоторые из них по мере необходимости.

Тем не менее, это исключение:

Произошла неизвестная ошибка SPRequest. Дополнительная информация: 0x80070005 ОШИБКА: не удалось вызвать идентификатор задания {C67EFFCB-607A-4B6A-8C90-60F615FD1878}

Видно, что это может быть проблема безопасности, и в другой теме stackoverflow я видел, что это может быть даже потому, что я использую следующий код:

  SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(siteId))
                {
                    this.DisableEventFiring();
                  // Logic code.
                  // ...
                }
             });

Но для его удаления потребуется перекомпиляция и повторное развертывание. Подумал, что лучше сначала попросить убедиться.

В производственной среде у нас есть два сервера, один для сайтов и один для базы данных. Активный каталог также реализован и полностью функционален. И для того, что я проверил, все учетные записи имеют разрешение «создать дочерний сайт» в центре администрирования, как видно из другой темы.

Так есть идеи?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2010

Проблема решена.

После записи журналов и исключений в текстовые файлы и введения в заблуждение журналом sharepoint на самом деле произошло то, что имя столбца в моем коде было неверным. Так как это очень специфическая настройка, в нем были буквально записаны имена столбцов. У одного из них было «_», например _Column_ В СПИСКЕ, В SHAREPOINT.

Но что касается SQL, у него не было '_.

Оглядываясь назад, кажется, что кто-то создал список, а затем переименовал его. Поэтому, когда вы создаете список, он регистрирует в SQL ПЕРВЫЕ имя столбца. Если вы измените его, он не будет изменен в SQL, он будет изменен в списке в SharePoint, но имя столбца в SQL все равно будет иметь свое первоначальное имя ...

Если вы уже знали, что поздравляю, потому что это было для меня таким открытием ...

0 голосов
/ 24 февраля 2010

Как насчет попытки использовать

this.DisableEventFiring();
try
{
  using (SPSite site = new SPSite(siteId, properties.Site.SystemAccount.UserToken) {

  }
}
finally
{
this.EnableEventFiring();
}

Конечно, вы не можете без RunWithElevatedPrivileges, если вы хотите изменить некоторые файлы в файловой системе, но в противном случае это может помочь.

...