Dans SharePoint 2010, il y a une nouvelle méthode CreateWeb dans le service web Sites avec le but de créer de nouveaux sous-sites SharePoint. Il y a, cependant, beaucoup de problèmes avec cette méthode - c'est du moins mon expérience. Voici le code qui devrait utiliser le service web et sa méthode correctement :
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);
Le code suivant renvoie l'exception Soap si quelque chose de mal s'est produit (par exemple, un sous-site avec l'adresse "newsite" existe déjà, ou le modèle spécifié n'existe pas).
Si tout va bien, une exception InvalidOperation est déclenchée avec le message "There is an error in XML document (1, 310).", mais le site est effectivement créé !
Si tout va bien, mais que j'utilise ma propre solution au lieu du modèle SharePoint par défaut (comme le site Team, c'est-à-dire STS#0), je reçois une exception Soap et le site n'est pas créé.
C'est une expérience terrible jusqu'à présent. Merci de nous faire part de vos expériences avec la création de sous-sites dans SP 2010, et mieux encore, de nous faire part de vos solutions à ces problèmes si vous en avez. Merci à tous !