我想使用Azure模擬器運行我的Azure應用程序。我添加了一個工作者角色,並且我重寫了Run()方法。在Azure工作者角色上獲取應用程序路徑運行()
在我的代碼中,我需要工作者角色或項目的物理路徑。
我試圖使用Environment.GetEnvironmentVariable(「TempFolder」)和HttpRuntime.AppDomainAppPath但都返回null。
你有什麼建議來獲得工作者角色Run()上的物理路徑嗎?
我想使用Azure模擬器運行我的Azure應用程序。我添加了一個工作者角色,並且我重寫了Run()方法。在Azure工作者角色上獲取應用程序路徑運行()
在我的代碼中,我需要工作者角色或項目的物理路徑。
我試圖使用Environment.GetEnvironmentVariable(「TempFolder」)和HttpRuntime.AppDomainAppPath但都返回null。
你有什麼建議來獲得工作者角色Run()上的物理路徑嗎?
輔助角色不是持久存在的臨時文件夾,建議不要使用它們。對於本地存儲,您應該使用Local Resources。您必須提前配置這些資源。
並獲得實際的文件夾路徑,使用此代碼:
RoleEnvironment.GetLocalResource("ResourceName").RootPath;
其中「資源名稱」是一個配置的本地資源的名稱。
多一點的描述here
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");