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.

È stato utile?

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 "

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top