これは少し些細なことに思えるかもしれませんが、私はそれを理解することができませんでした. SPSite を開き、その SPSite の下で SPWeb を開こうとしています。これは、同じサイト コレクション/サイト階層を持つ VPC では正常に機能していますが、本番環境では、SPSite.OpenWeb(webUrl); を試すと、URL が無効であることを示す例外が発生します。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 は、実際には Web の URL も含む URL 全体です。
出力 + 例外:
サイト コレクションの URL: https://ourSite.com/mocc
System.ArgumentException: 無効な URL: /internal/scheduletool。MOCCBranchScheduleListWeb.MOCCBranchScheduleListV3.GetConflictListItem (文字列 branchScheduleURL、文字列 testID) System.NullReferenceException: オブジェクト参照がに設定されていません。オブジェクトのインスタンス。MOCCBranchScheduleListWeb.MOCCBranchScheduleListV3.CheckForConflicts (文字列 [] cfcFlags1、DateTime startTime、DateTime endTime、文字列 [] cfcFlags2) で
注:
https://ourSite.com/mocc/internal/scheduletoolは、開こうとしている SPWeb です。
明らかな何かが欠けていますか?どんな助けでも大歓迎です。
ありがとう。