2014-06-26 77 views
1

我想使用Azure模擬器運行我的Azure應用程序。我添加了一個工作者角色,並且我重寫了Run()方法。在Azure工作者角色上獲取應用程序路徑運行()

在我的代碼中,我需要工作者角色或項目的物理路徑。

我試圖使用Environment.GetEnvironmentVariable(「TempFolder」)和HttpRuntime.AppDomainAppPath但都返回null。

你有什麼建議來獲得工作者角色Run()上的物理路徑嗎?

回答

1

輔助角色不是持久存在的臨時文件夾,建議不要使用它們。對於本地存儲,您應該使用Local Resources。您必須提前配置這些資源。

並獲得實際的文件夾路徑,使用此代碼:

RoleEnvironment.GetLocalResource("ResourceName").RootPath; 

其中「資源名稱」是一個配置的本地資源的名稱。

多一點的描述here

0

Azure的輔助角色的物理文件夾/路徑可以使用RoleRoot環境變量訪問 - 這既適用於本地部署(即運行在調試),並在Azure本身。請注意,通過Visual Studio添加到您的輔助角色的所有內容均位於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

相關問題