/sites
- это не веб-сайт, это Управляемый путь .В SharePoint веб-сайт IIS является веб-приложением.Управляемые пути позволяют SharePoint иметь несколько семейств сайтов на одном веб-сайте IIS.И затем сайты SharePoint объединяются в семейство сайтов.
Таким образом, чтобы получить все сайты во всех семействах сайтов в /sites
управляемом пути веб-приложения, вам потребуется код, подобный следующему:
foreach (SPSite site in SPContext.Current.Site.WebApplication.Sites)
{
try
{
if (SPSite.Exists(new Uri(site.Url)) && site.ServerRelativeUrl.StartsWith("/sites/"))
{
SPWebCollection subSites = site.AllWebs;
NavigationOutputHtml.Text = CreateNavigationHtml(subSites);
}
}
finally
{
site.Dispose();
}
}