Элемент не добавлен в список (из кода) - PullRequest
0 голосов
/ 29 ноября 2011

У нас тут странная проблема. У нас есть приемник событий, где мы создаем настраиваемые поля -> тип контента -> список. После этого добавляется один элемент по умолчанию. На моей виртуальной машине все работало нормально, но после перехода в среду pre-prod мы получили странное поведение без исключений и ошибок в журналах. Во-первых, предмет создавался только иногда, без следа того, что произошло. В основном это не было создано. Я даже испытал это: когда я активировал функцию, я пошел к списку и тому подобному, но после обновления он исчез! Мы попытались поместить некоторый цикл Thread.Sleep () (во время отладки элемент находился в коллекции Items , но свойство списка 10000 * ItemsCount всегда показывало 0). Теперь у меня нет идей, что не так. Дело не во времени исполнения (возможно). Похоже, по какой-то причине SP убивает SPItem.Update до того, как он будет создан по-настоящему, и мы не знаем почему. Любая помощь действительно приветствуется!

Ответы [ 3 ]

1 голос
/ 30 ноября 2011

Когда вы пытаетесь получить доступ к элементам sharepoint из кода и не имеете прав администратора для их обновления / удаления, тогда установите веб-сайт website.AllowUnsafeUpdates = true;свойство

// Set AllowUnsafeUpdates = true, чтобы обновить список базы данных / списка общих ресурсов из кода.

    FormWeb.AllowUnsafeUpdates = true;

    NewItem.Update();

    FormWeb.AllowUnsafeUpdates = false;

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

Проверьте, правильно ли вы обновляете список. Возможны проблемы с безопасностью SharePoint.

Ссылка: http://blogs.msdn.com/b/infopath/archive/2010/04/01/add-items-to-a-sharepoint-list-using-managed-code.aspx.

Вы можете проверить эту [SPSecurity.RunWithElevatedPrivileges] [1]

[1]: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx, ссылка , ссылка

вы можете проверить, что там происходит, добавив ваши события в sharepoint .. Проверьте этот пост и отладьте его .. http://developmentsolutionsjunction.blogspot.com/2011/06/adding-events-and-eventhandlers-in.html

1 голос
/ 01 декабря 2011

так что я наконец-то смог выяснить, в чем проблема.После более глубокого изучения и попытки этого и этого я обнаружил, что была функция стороннего производителя.Он добавлял событие в каждый созданный список и удалял все, что не соответствовало CT, определенному компанией.Это странно, и я не очень понимаю, почему кто-то хочет этого.Но хорошо, они платят, их правила.Так что, если вы столкнулись с такой проблемой, попробуйте и эту возможность.Тем не менее, во время этого я также мало что могу сказать, например, если вы работаете с экземплярами SP из веб-области, используете функции веб-области, а не сайт, также у SP есть неприятная привычка молчать о некоторых исключениях.Кроме того, если вы, например, берете экземпляр SPWeb из свойств события, это не обязательно означает, что он уже создан.Кроме того, требуется некоторое время, сама функция Update () - это то, что БД должна выполнить.Иногда лучше всегда проверять, есть ли у вас экземпляр, а если нет, то какое-то время спит.

0 голосов
/ 30 ноября 2011

Использовали ли вы метод .Update () в своем коде ??

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