使用MVC3我想確定我是在本地運行還是部署到雲中?如何確定我是在本地PC上還是在雲上運行?
回答
這是我用
public static class Azure
{
private static bool m_IsRunningAzure = GetIsRunningInAzure();
private static bool GetIsRunningInAzure()
{
Guid guidId;
if (RoleEnvironment.IsAvailable && Guid.TryParse(RoleEnvironment.DeploymentId, out guidId))
return true;
return false;
}
public static bool IsRunningInAzure()
{
return m_IsRunningAzure;
}
private static bool m_IsRunningAzureOrDevFabric = GetIsRunningInAzureOrDevFabric();
private static bool GetIsRunningInAzureOrDevFabric()
{
return RoleEnvironment.IsAvailable;
}
public static bool IsRunningInAzureOrDevFabric()
{
return m_IsRunningAzureOrDevFabric;
}
}
RoleEnvironment.IsAvailable
告訴你,如果你在Windows Azure中運行,但它不區分真正的Windows Azure和本地開發模擬器。
我寫了一個blog post,它顯示了一個技巧來確定您是在真實還是在模擬Windows Azure中運行,當時是RoleEnvironment.IsAvailable == true
- 希望能夠提供您需要的內容。
編輯:如果您想下正骯髒的代碼,我在上述崗位描述,沒有爲什麼該技術適用於任何的解釋:
private bool IsRunningInDevFabric()
{
// easiest check: try translate deployment ID into guid
Guid guidId;
if (Guid.TryParse(RoleEnvironment.DeploymentId, out guidId))
return false; // valid guid? We're in Azure Fabric
return true; // can't parse into guid? We're in Dev Fabric
}
編輯2:我的答案是有點過時。現在有,這更直接使用。 MSDN文檔是here
也許重新字這更加突出RoleEnvironment.IsEmulated在老黑客? – Simon 2013-11-12 02:21:47
應該注意的是'IsAvailable'仍應該被檢查,因爲如果前者是假的(角色環境未初始化),IsEmulated將被拋出。 – 2014-09-17 10:39:33
您可以通過查找環境變量的存在以舊式的方式執行此操作。
在計算機屬性中設置環境變量的值,並使用Environment.GetEnvironmentVariable(「MyVariable」)讀取它。
在Azure上,變量將不存在,所以調用將返回null。
- 環境變量
- deploymentID
- 計算機名稱
- 的Windows Azure存儲服務端點
看着他們,我想我我很想看看AZURE_DRIVE_DEV_PATH環境變量 - 但是有n個o保證這將在未來的SDK版本中起作用。
我沒有看到該MSDN線程 - 感謝張貼。最有價值的是在開發環境與生產環境中運行時返回的值的比較。選項4可能不太實用,因爲您可以從開發環境訪問dev存儲或實際存儲。我使用選項2,但正如您所提到的有關未來SDK版本的免責聲明用於檢查環境變量,這也適用於檢查部署標識。 – 2011-05-29 11:21:24
- 1. 確定我是在Cloudhub上運行還是在本地運行
- 2. 如何確定我的應用程序是在x86還是x64 Windows上運行?
- 3. 在sturtup上運行腳本還是在網絡上運行? Ubuntu17.04
- 4. 在Global.asax中檢查代碼在本地機器上還是在EC2上運行
- 5. 如何確定我的代碼是否在Google Glass上運行?
- 6. 如何在ASP.NET MVC中查看站點是在本地主機上還是在127.0.0.1上運行
- 7. 如何在PC上本地測試Firebase雲功能
- 8. 在Flex中,可以確定代碼是在Web還是AIR上運行?
- 9. Django/Python-我應該在本地分支上運行makemigrations,還是隻在master上運行?
- 10. 在本地PC上運行asp.net mvc時使用特定的web.config
- 11. 我的程序如何確定它是在32位還是在64位Windows上運行?
- 12. 如何查找Windows是在虛擬機上還是在物理機上運行?
- 13. emacs,它是在筆記本電腦上還是在桌面上運行?
- 14. R腳本:確定腳本是在GUI中還是從命令行運行
- 15. Bugzilla如何在本地PC上工作?
- 16. 如何檢查MongoDB服務器是否在pc上運行
- 17. 如何在PC羣集上運行VMWare?
- 18. 如何在多核PC上運行php
- 19. 如何確定我的腳本在哪個頁面上運行
- 20. 如何檢查node.js腳本是在終端還是網絡上運行?
- 21. Red5在本地PC上
- 22. Azure WorkerRole在本地dev-fabric上運行,但不是在azure上
- 23. 確定在illumos/solaris上是否在控制檯上運行
- 24. 如何知道我是在模擬器還是真正的手機上運行
- 25. 如何確定Coffeescript腳本是作爲腳本運行還是在模塊中需要運行?
- 26. 在地圖上迭代時,是++還是++ ++?
- 27. Symfony項目是不是在本地PC上工作
- 28. 如何確定我的python腳本是否正在運行?
- 29. 離開NetBeans運行在vps上還是一樣,還是應該只運行glassfish?
- 30. FTP未在PC上運行
如果你看過我的博客文章,如我的答案中所引用的,你會看到這種確切的技術顯示和解釋。 – 2011-05-29 10:59:11