Я пишу обработчик событий, который в ItemAdded проверяет, существует ли сайт, а затем создает сайт с заданным URL или с альтернативным URL.Я уже написал что-то подобное, но я пытался очистить свой код для существующего сайта, проверьте метод ниже.
private string CheckSiteExists(SPWeb web, string siteURL, string webURL)
{
//Counter for our alternate URL
int i = 0;
//Open original URL
SPWeb tempweb = web.Site.OpenWeb(webURL + "/" + siteURL);
//Check if site exists
if (tempweb.Exists == false)
{
do
{
i++;
tempweb = web.Site.OpenWeb(webURL + "/" + siteURL + "_" + i);
}
while (tempweb.Exists == false);
//Dispose of our web
tempweb.Dispose();
}
else
{
tempweb.Dispose();
//If site does not exist, return original URL
return siteURL;
}
//If site does exist, return original url plus counter
return siteURL + "_" + i;
}
Я решил проверить, что у меня есть, и обнаружил, что w3wp перешел с 0% загрузки процессора до 50-80% и оставался там до тех пор, пока не убил его вручную.Я предполагаю, что мое утверждение do while действует не так, как мне кажется, а просто зацикливается на бесконечность.