我目前正在做一些测试,我尝试以编程方式删除网站集。因此,我意识到 SharePoint 的一些奇怪行为。
我使用以下代码来测试网站集删除。
private static void DeleteSiteCollection(string urlSiteToDelete)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://wssdev06"));
webApp.Sites.Delete(urlSiteToDelete);
webApp.Update();
});
}
因此,当我使用现有网站集的 url 调用该方法时,将按预期删除网站集。但是,当我使用 null、空字符串或未连接到网站集的 url 调用该方法时,SharePoint 会删除位于根目录下的网站集(例如http://wssdev06/)。
我不确定我是否太过于使用此 SPSiteCollection.Delete() 方法,或者我是否不了解网站集和托管路径的相关性,但我认为这是一个非常奇怪和令人担忧的行为。
我可以在不同的 Web 应用程序上重现这种行为,但还没有选择在另一个 SharePoint 环境中进行测试。
那么我做错了什么还是这是一个错误?
更新:
所以我做了更多的调查并意识到这一定与 SPSiteCollection 类的索引器有关,如果给定的 url 下没有网站集,则返回根网站集。看起来像一个错误。