문제

SharePoint 루트에 목록 수를 나열하는 콘솔 앱을 작성하려고합니다.

다음 코드를 사용하여 시도했지만 객체 spcontext.current는 null입니다. 웹 객체를 얻는 방법에 대한 아이디어가 있습니까?

 SPWeb web = SPContext.Current.Site.OpenWeb("http://localhost") ;
도움이 되었습니까?

해결책

SPSite spSite = new SPSite("http://myurl");
SPWeb spMySite = spSite.Allwebs["mysite"];
SPWeb spRootsite = spsite.RootWeb;

콘솔 앱은 평소와 같이 서버에서만 실행됩니다. 또한 사용 된 URL http : // myurl 페이지의 URL 일 수 있고 Spsite 객체가 생성됩니다. 예를 들어 http : //myurl/mysite/pages/default.aspx 유효한 spsite 객체를 얻을 수 있습니다.

다른 팁

Nat의 게시물에 작은 것을 추가하는 것만 :
SharePoint WebApp에서와 같이 중요하지 않더라도 모든 SPWEB 및 SPSITE OBJET을 폐기하는 것이 좋습니다.
좋은 습관을 유지하십시오.

using (SPSite site = new SPSite(weburl))
{
    using (SPWeb web = site.OpenWeb())
    {
        // bla bla
    }
}

참고 : WebURL을 직접 SPSITE 생성자로 전달할 수 있으므로 OpenWeb은 주어진 웹을 열게됩니다.

spsite.openweb ()를 사용할 수있는 몇 가지 다른 방법이 있습니다 ...

spweb 객체의 안내를 추적하면 :

site.OpenWeb(webUid);

웹 서버 또는 사이트 상대 URL 또는 제목을 사용하여 msdn spsite.openweb (String) 자세한 사항은:

site.OpenWeb(relativeUrl);
site.OpenWeb(title);

정확한 상대 URL을 사용하고 spsite.openweb (string)가 사용하는 영리한 물건을 피하십시오.

site.OpenWeb(relativeUrl, true);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top