托管路径站点/ MySite在此租户中不是托管路径

时间:2020-02-21 13:06:33

标签: c# .net sharepoint sharepoint-online csom

为什么会出现此错误?这是我从here引用的代码,它获取所有站点和子站点,但是我没有直接提供用户名和密码,而是使用了this这样的证书身份验证。该流工作正常,但会引发此错误“托管路径站点/ MySite在此租户中不是托管路径”。第一次递归调用GetSubSite()函数时。就像网站https://tenant.sharepoint.com/sites/MySite一样,当有两个SiteCollection MySite子站点时,子站点1的Url将作为GetSubSite()函数的参数传递,作为引发该错误的第一个递归。我在做什么错了?

public SiteStats GetSubSite(string Url, int siteLevel)
{
    using(var context = new ClientContext(adminSiteUrl))
    {
        var tenant = new Tenant(context);
        var site = tenant.GetSiteByUrl(Url);
        context.Load(site, w => w.RootWeb);
        var web = site.RootWeb;
        context.Load(web, w => w.Webs);
        context.ExecuteQuery();
        WebCollection webCollection = web.Webs;
        var siteStats = new SiteStats(siteLevel);
        try
        {
            if (webCollection.Count > 0)
            {
                siteLevel++;
                context.Load(webCollection, someProperties);
                context.ExecuteQuery();
                foreach (var webIt in webCollection)
                {
                    var webItem = site.OpenWeb(webIt.ServerRelativeUrl);
                    context.Load(webItem);
                    context.ExecuteQuery();
                    GetSubSite(webItem.Url, siteLevel);
                }
        }
    }
}

0 个答案:

没有答案