sharepoint splistitem.Update не удается - PullRequest
       30

sharepoint splistitem.Update не удается

0 голосов
/ 11 сентября 2011

У меня есть следующий код:

using(SPWeb web = ...
{ 
          ....

    SPListItem item = GetItemById(id);

    item["Status"] = status;
    item["Reason"] = reason;

    item.Update();
}

И я получил исключение "Невозможно выполнить это действие" ... однако, пытаясь понять это, я заметил кое-что ... странное ...

Я установил точку останова точно в строке item.Update () ... во время отладки я позволил исключению произойти, а затем пошел в окно Watch и поместил там "item.Update ()"... элемент был обновлен ...

Затем .. Я начал все сначала, но на этот раз я попытался "item.Update ()" в окне просмотра, было сгенерировано исключение .. затемЯ нажимаю F10, чтобы выполнить мой код, и, к моему удивлению, он успешно обновил элемент ..

Я пробовал это снова и снова, и всегда один и тот же ... так что по какой-то странной причине первоевремя терпит неудачу, а второй хорош .. кто-нибудь знает почему?

РЕДАКТИРОВАТЬ:

Я пробовал это:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    ....
    item.Update();
});

Но это все равно не удается, теперь за исключением: «Операция недействительна из-за текущего состояния» ...

РЕДАКТИРОВАТЬ 2:

это мох 2007, это веб-приложение (asp.net), подключающееся к сайту sharepoint, существуют оба столбца ..

Я нашел еще одну вещь ... если я поставлю точку останова в элементе.Update (), и я нажимаю F10, он работает .. элемент обновляется .. и исключение не выбрасывается ... но при нормальном исключении всегда происходит сбой ..

1 Ответ

1 голос
/ 11 сентября 2011

Попробуйте установить:

web.AllowUnsafeUpdates = true;

Кроме того, если вы делаете другие обновления до этого для объекта SPWeb или SPListItem, вам может потребоваться их новое обновление.

Проверьте здесь некоторую информацию, которая может вам помочь: http://hristopavlov.wordpress.com/2008/05/16/what-you-need-to-know-about-allowunsafeupdates/

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