MOSS 2007 - Eccezione URL non valida SPSite.OpenWeb (...)
-
08-07-2019 - |
Domanda
Questo può sembrare un po 'banale, ma non sono stato in grado di capirlo. Sto aprendo un SPSite e quindi sto provando ad aprire un SPWeb sotto quel SPSite. Funziona bene sul VPC, che ha la stessa gerarchia di Raccolta siti / Sito, ma in produzione ottengo un'eccezione che mi dice che l'URL non è valido quando provo SPSite.OpenWeb (webUrl) ;. Ho verificato che gli URL siano corretti.
Il codice:
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;
}
Nota:
branchScheduleURL è in realtà l'intero URL che include anche l'URL del Web.
L'output + l'eccezione:
URL raccolta siti: https://ourSite.com/mocc
System.ArgumentException: URL non valido: / internal / scheduletool. su Microsoft.SharePoint.SPSite.OpenWeb (String strUrl, Boolean RequExactUrl) a Microsoft.SharePoint.SPSite.OpenWeb (String strUrl) su MOCCBranchScheduleListWeb.MOCCBranchScheduleListV3.GetConflictListItem (String branchSReErenceErotone): String istanza di un oggetto. at MOCCBranchScheduleListWeb.MOCCBranchScheduleListV3.CheckForConflicts (String [] cfcFlags1, DateTime startTime, DateTime endTime, String [] cfcFlags2)
Nota:
https://ourSite.com/mocc/internal/scheduletool è l'SPWeb che sto cercando di aprire.
Mi sto perdendo qualcosa di ovvio? Qualsiasi aiuto sarebbe molto apprezzato.
Grazie.
Soluzione
Guarda la tabella degli esempi in fondo a questa pagina .
Prova a non inviare alcun parametro nel metodo OpenWeb () (2a riga).
Altri suggerimenti
Prova a ottenere l'oggetto SPWeb per " Internal " primo. quindi ottenere il SubWeb SPWebCollection per quello e l'oggetto. Da questo, prova a ottenere l'oggetto SPWeb per " ScheduleTool " utilizzando il metodo GetSubwebsForCurrentUser ().
Dice che il tuo URL di raccolta siti è / mocc, quindi il tuo SPWeb sottostante sarebbe qualcosa come / mocc / internal / scheduletool. Quindi fai qualcosa come
stringa webServerRelativeUrl = site.ServerRelativeUrl + " / internal / scheduletool "