2011-03-17 3 views
0

SPWeb.GetListItem()을 사용하여 알려진 URL (MSDN)로 항목을 가져 오려고합니다.SPWeb.GetListItem 첫 번째 호출시 COMException - 초는 ok입니다.

그래서 기본적으로 나는 다음과 같은 일을 해요 : 당신이 궁금해하는 경우

using (SPSite spSite = SPContext.Current.Site) 
{ 
    using (SPWeb spWeb = spSite.RootWeb) 
    { 
     SPListItem spListItem = spWeb.GetListItem 
      ("/sites/testSite/Lists/testList/Folder/Subfolder"); 
    } 
} 

, 나는 그것으로 물건을 할 수있는 폴더 "하위 폴더"를 얻기 위해 노력하고있어.

이 작업을 완료 할 수 없습니다 :

문제는 내가이 전화를 처음으로, 나는 COMExpeption를 얻을 수 있다는 것입니다.

을 다시 시도하십시오. <nativehr>0x80004005</nativehr><nativestack></nativestack>

설명 :되지 않은 예외 는 현재 웹 요청을 실행하는 동안 일어났다. 오류 및 코드가 인 곳에서 에 대한 자세한 내용은 스택 추적을 검토하십시오.

예외 정보 : 함께 System.Runtime.InteropServices.COMException : 이 작업을 완료 할 수 없습니다.

은 전체 상대 사이트의 URL을 사용해야하기 때문에 일어나는 COMException에 대한 somereports있다, 그래서 대신 /Lists/testList/Folder/SubFolder, 당신은 /sites/testSite/Lists/...를 사용해야합니다 - 난 그냥 그 일을하고 있습니다. 나 또한 절대 URL (http://sharepoint/sites/...)을 사용해 보았습니다. 문제는 남아 있습니다 : 나는 처음으로 spListItem을 얻으려고 할 때 COMException을 얻습니다.
예외 후에 코드를 다시 실행하려고하면 SPListItem이 정상적으로 수신됩니다. 또한 모든 후속 호출이 작동합니다 - 첫 번째 호출 만 실패합니다.

일부 초기화 중 잘못 했나요?

답변

1

아마도 SPWeb.GetFolder()를 시도해보십시오.하지만 다시 폴더를 사용하여 정확히 무엇을하고 싶은지에 따라 달라집니다. 폴더에 목록 항목을 가져 오는 데 사용되는 방법을 사용하고 있지만 이상하게 보입니다. _uiserWeb -

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

1

봅니다 목록 항목이있는 웹을 인스턴스화합니다.

tryed Site.RootWeb.GetListItem(item_url) - 코드 재배포 후 처음으로 null을 주었고 두 번째로 좋았습니다.

_item = _userWeb.GetListItem(item_url)