获取Azure辅助角色的应用程序路径Run()

时间:2014-06-26 13:30:37

标签: azure azure-worker-roles

我尝试使用Azure模拟器运行我的Azure应用程序。我添加了一个辅助角色,并且我已经覆盖了方法Run()。

在我的代码中,我需要辅助角色或项目的物理路径。

我尝试使用Environment.GetEnvironmentVariable(" TempFolder")和HttpRuntime.AppDomainAppPath但两者都返回null。

您是否有任何建议可以获得工作者角色Run()的物理路径?

2 个答案:

答案 0 :(得分:1)

工作者角色不会保留临时文件夹,因此不建议使用它们。对于本地存储,您应使用Local Resources。您必须提前配置这些资源。

要获取实际的文件夹路径,请使用以下代码:

RoleEnvironment.GetLocalResource("ResourceName").RootPath;

Where" ResourceName"是已配置的本地资源的名称。

更多说明here

答案 1 :(得分:0)

可以使用 RoleRoot环境变量访问Azure辅助角色的物理文件夹/路径 - 这适用于本地部署(即在Debug中运行)和Azure本身。请注意,通过Visual Studio添加到Worker Roles的所有内容都位于AppRoot文件夹下。

例如,如果你在Visual Studio中有这个:

MyWork.AzureWorkerProject
-- Roles
---- MyWork.AzureWorkerProject.WorkerRole
------ images
-------- test.png

以下代码应返回test.png的正确文件路径,无论您是在本地还是在云中运行。

string appRoot = Environment.GetEnvironmentVariable("RoleRoot");   
string fullPath = Path.Combine(appRoot + @"\", @"AppRoot\images\test.png");

如果您感兴趣,请进一步阅读herehere