Dans le cadre du démarrage d'un WebRole sur Windows Azure, je voudrais accéder aux fichiers sur le site Web en cours de démarrage et je voudrais le faire dans RoleEntryPoint.OnStart(). Cela va par exemple m'autoriser à influencer la configuration ASP.NET avant que le domaine ASP.NET AppDomain soit chargé. Lors de l'exécution locale avec Azure SDK 1.3 et VS2010, l'exemple de code ci-dessous fait l'affaire, mais le code a l'odeur de piratage et ne fait pas l'affaire lors du déploiement sur Azure.Comment puis-je obtenir le chemin racine du site WebRole à partir de RoleEntryPoint.OnStart()?
XNamespace srvDefNs = "http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition";
DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
string roleRoot = di.Parent.Parent.FullName;
XDocument roleModel = XDocument.Load(Path.Combine(roleRoot, "RoleModel.xml"));
var propertyElements = roleModel.Descendants(srvDefNs + "Property");
XElement sitePhysicalPathPropertyElement = propertyElements.Attributes("name").Where(nameAttr => nameAttr.Value == "SitePhysicalPath").Single().Parent;
string pathToWebsite = sitePhysicalPathPropertyElement.Attribute("value").Value;
Comment puis-je obtenir le chemin racine du site WebRole de RoleEntryPoint.OnStart() d'une manière qui fonctionne dans les deux dev et sur Azure?
La modification de l'autorisation et/ou la modification des fichiers déployés n'est possible que si vous ajoutez ce au WebRole dans ServiceDefinition.csdef. –