В SharePoint 2010 появился новый метод CreateWeb в веб-службе сайтов, предназначенный для создания новых дочерних сайтов SharePoint. Однако есть много проблем с этим - ну, по крайней мере, это мой опыт. Вот код, который должен правильно использовать веб-сервис и его метод:
Uri site = new Uri("http://sp2010site/");
string webServicePath = "_vti_bin/Sites.asmx";
string webServiceUrl = Path.Combine(site.AbsoluteUri, webServicePath);
Sites webService = new Sites();
webService.Credentials = CredentialCache.DefaultNetworkCredentials;
webService.Url = webServiceUrl;
//the following line creates the sub site
string result = webService.CreateWeb("newsite", "New Site", "Site desc", "STS#0",
1033, true, 1033, true, 1033, true, true, true, true, true, true, true);
Следующий код возвращает исключение Soap, если что-то случилось (например, сайт с адресом "newsite" уже существует или указанный шаблон не существует).
Если все в порядке, возникает исключение InvalidOperation с сообщением «В документе XML есть ошибка (1, 310).», Но сайт фактически создан!
Если все в порядке, но я использую свое собственное решение вместо нестандартного шаблона SharePoint (такого как сайт группы, т. Е. STS # 0), я получаю исключение Soap, и сайт не создается.
Это был ужасный опыт до сих пор. Пожалуйста, опубликуйте свой опыт создания под-сайта в SP 2010, и, что еще лучше, опубликуйте свои решения по этим проблемам, если они у вас есть. Ура всем!