Windows Azure'da bir WebRole başlatmanın bir parçası olarak Başlatılan web sitesindeki dosyalara erişmek istiyorum ve bunu RoleEntryPoint.OnStart() içinde yapmak istiyorum. Bu, örneğin ASP.NET AppDomain yüklenmeden önce ASP.NET yapılandırmasını etkilememi sağlar.WebRole site kök yolunu RoleEntryPoint.OnStart() içinden nasıl edinebilirim?
Azure SDK 1.3 ve VS2010 ile yerel olarak çalışırken, aşağıdaki örnek kod işe yaramaz, ancak kodun etrafındaki kırılma kokusu vardır ve Azure'a dağıtılırken hile yapmaz.
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;
nasıl hem dev ve Azure üzerinde çalışmak bir bakıma RoleEntryPoint.OnStart() den WebRole sitesi kök yolunu alabilirim? Eğer aradığınızı size
Environment.GetEnvironmentVariable("RoleRoot")
Does:
Dağıtılan dosyaların izinlerinin değiştirilmesi ve/veya düzenlenmesi, yalnızca bu ServiceDefinition.csdef dosyasındaki WebRole'a eklendiğinde mümkündür. –