<nativehr> 0x80070002 </nativehr> в Sharepoint 2010 - PullRequest
5 голосов
/ 21 апреля 2011

Я недавно обновился с Sharepoint 2007 до 2010. У меня есть служба Windows, которая вставляет PDF-файлы в sharepoint.Он отлично работает в 2007 году. Когда я перешел на 2010, я начал получать следующую неустойчивую ошибку:

<nativehr>0x80070002</nativehr>

at Microsoft.SharePoint.Library.SPRequestInternalClass.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at 

Microsoft.SharePoint.Library.SPRequest.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at Microsoft.SharePoint.SPWeb.GetList(String strUrl)

Вот строка кода, вызывающая проблемы:

SPList parentList = web.GetList(url);

Что странно, так эточто это только иногда терпит неудачу.Я на самом деле обернул эту строку цикла, и если это не удается, я немного подожду, а затем снова попытаюсь получить список.Обычно после нескольких попыток GetList будет успешным.

Так как он не легко дублируется, я ищу любые ссылки, которые я мог бы отследить.

Из поисков Google, "Рекомендую "исправить - это изменить любые вызовы .GetList (...) на SPWeb.Lists [" .. "];

Но я ушел от этого из-за попадания перфоратора в 2007 году (.GetList(...) работает лучше, чем SPWeb.Lists ["..."])

Есть предложения?

Спасибо!
Дэйв

Ответы [ 3 ]

0 голосов
/ 26 марта 2012

SPWeb.GetList Метод, безусловно, вызовет ошибку, если список не существует на сайте. Метод разработан так. Это уже задокументировано в MSDN.

Если вы не уверены, есть этот список или нет; используйте Webobject.List[ListName], чтобы избежать исключения.

Вы можете проверить мой блог Коды SharePoint для примера кода

Я думаю, что это поздний ответ, но надеюсь, что он поможет другим в будущем.

0 голосов
/ 11 августа 2017

Что решило точно такую ​​же ошибку на SPWeb.GetList(reletiveUrl) с ошибкой, выданной в методе GetMetadataForUrl на SharePoint 2010:

  • перезагрузка IIS
  • перезагрузка SPTimerV4 (SharePoint 2010Таймер)
  • перезагрузка SPAdminV4 (Администрирование SharePoint 2010)
0 голосов
/ 29 сентября 2011

Может быть, вы могли бы лучше понять ошибку, если вы сначала получили SPFolder или SPFile, относящиеся к рассматриваемому URL. Проверьте .GetFile (...). Exists и .GetFolder (...). Exists. Вы также можете получить свойство ParentList.

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