1
我正在將部署從Azure網站的Web應用程序移至Cloud Service中的Web角色。我的代碼是在Web角色還是網站中運行?
遷移部分已經涉及保留的角色配置一些本地存儲和改變與本地文件系統使用下面的口頭禪發現,有利於寫入路徑相互作用:
LocalResource tempStorageResource = RoleEnvironment
.GetLocalResource("SomeRoleStorage");
var targetFolderPath = tempStorageResource.RootPath;
但是,我想保持在WebSite實例中的工作。我將編寫一個路徑提供程序,將實際位置抽象出來。部分實現需要檢測我是在本地運行/在調試器中運行,但我還需要知道運行的代碼是在WebSite還是WebRole下運行。我怎樣才能做到這一點?
public class AzurePathProvider : ILocalStoragePathProvider
{
public string GetStoragePath(string key)
{
var isWebRole = //????;
if(isWebRole)
{
LocalResource tempStorageResource =
RoleEnvironment
.GetLocalResource(key);
return tempStorageResource.RootPath;
}
else
{
return "/some/other/storage/location";
}
}
}
最簡單的事情就是在web.config中添加一個標誌嗎? – James 2014-11-06 11:22:42
@詹姆斯:是的,那可行。 – spender 2014-11-06 11:24:24
或者你可以檢查一個特定的環境變量,例如'WEBSITE_SITE_NAME' - 唯一的問題就是確保你的本地環境中設置了相同的變量。 – James 2014-11-06 11:25:50