Como parte de la puesta en marcha de un WebRole en Windows Azure, me gustaría acceder a los archivos en el sitio web que se está iniciando y me gustaría hacer esto en RoleEntryPoint.OnStart(). Esto, por ejemplo, me permitirá influir en la configuración de ASP.NET antes de que se cargue el AppDomain de ASP.NET.¿Cómo puedo obtener la ruta raíz del sitio WebRole desde RoleEntryPoint.OnStart()?
Cuando se ejecuta localmente con Azure SDK 1.3 y VS2010, el código de ejemplo que se muestra a continuación funciona, pero el código tiene el hedor de hackearlo y no funciona cuando se implementa en Azure.
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;
¿Cómo puedo obtener la ruta raíz del sitio WebRole de RoleEntryPoint.OnStart() de una manera que funcione tanto en dev y en Azure?
Cambiar el permiso y/o editar los archivos implementados solo es posible si agrega este a WebRole en ServiceDefinition.csdef. –