Это может показаться немного тривиальным, но я не смог понять это. Я открываю SPSite, а затем пытаюсь открыть SPWeb под этим SPSite. Это работает нормально на VPC, который имеет ту же иерархию семейства сайтов / сайтов, но на производстве я получаю исключение, сообщающее, что URL-адрес недействителен при попытке SPSite.OpenWeb (webUrl) ;. Я подтвердил, что URL верны.
Код:
try
{
SPSite scheduleSiteCol = new SPSite(branchScheduleURL);
lblError.Text += Environment.NewLine + "Site Collection URL: " + scheduleSiteCol.Url;
SPWeb scheduleWeb = scheduleSiteCol.OpenWeb(branchScheduleURL.Replace(scheduleSiteCol.Url, "")); //<--- Throws error on this line
SPList scheduleList = scheduleWeb.GetList(branchScheduleURL + "/lists/" + SPContext.Current.List.Title);
return scheduleList.GetItemById(int.Parse(testID));
}
catch (System.Exception ex)
{
lblError.Text += Environment.NewLine + ex.ToString();
return null;
}
Примечание:
BranchScheduleURL - это фактически весь URL-адрес, который также включает в себя URL-адрес в Интернете.
Выход + исключение:
URL-адрес семейства сайтов: https://ourSite.com/mocc
System.ArgumentException: неверный URL: / internal / scheduletool. в Microsoft.SharePoint.SPSite.OpenWeb (String strUrl, Boolean requireExactUrl) в Microsoft.SharePoint.SPSite.OpenWeb (String strUrl) в MOCCBranchScheduleListWeb.MOCCBranchScheduleListV3.GetConflictListItem, ссылка на объект String, ссылка на объект String, ссылка на системный объект, ссылка на объект String (ссылка на класс String) экземпляр объекта. в MOCCBranchScheduleListWeb.MOCCBranchScheduleListV3.CheckForConflicts (String [] cfcFlags1, DateTime startTime, DateTime endTime, String [] cfcFlags2)
Примечание:
https://ourSite.com/mocc/internal/scheduletool - это SPWeb, который я пытаюсь открыть.
Я что-то упускаю из виду? Любая помощь будет принята с благодарностью.
Спасибо.