【问题标题】:How to differentiate hyperv and azure in virtual machine code?如何区分虚拟机代码中的hyperv和azure?
【发布时间】:2015-11-12 15:07:19
【问题描述】:

我有一台可以在 azure 和 Hyper-V 上运行的虚拟机。

我有一些代码只能在 azure 中执行。但我无法确定区分 azure 和 Hyper-V 的方法。

【问题讨论】:

    标签: azure hyper-v


    【解决方案1】:

    就个人而言,我更喜欢在您的 web.config 文件中使用配置属性。然后,您可以针对 Azure 和您的 HyperV 环境进行两种不同的发布转换。

    例如,我们在依赖 AzureStorage 时使用我们的解决方案做类似的事情,并将其放在我们的 Web.config 的 appSettings 部分:

    <add key="UseAzureStorage" value="false" />

    然后在 web.config 转换中,您将拥有:

    <add key="UseAzureStorage" value="true" xdt:Locator="Match(key)" xdt:Transform="Replace"/>

    此外,如果您在 Azure 中使用云服务,则可以使用 RoleRoot 环境变量。

    http://blog.toddysm.com/2011/03/what-environment-variables-can-you-use-in-windows-azure.html MSDN:http://msdn.microsoft.com/en-us/library/windowsazure/gg557552.aspx

    【讨论】:

    • 您好蚂蚁,感谢您的回复。我是这些超级管理程序的新手。我不知道 web.config 文件。是否可以从我们的 VM 代码中访问它?
    • 我明白了。我认为这是您正在开发的 Web 应用程序,但可能不是。您是否为您的应用程序使用 .NET 框架/Visual Studio?您可能在那里有一个 app.config。如果您使用的是 Visual Studio,有一个名为 SlowCheetah 的扩展程序可以提供与您目前正在使用的配置转换相同的行为。
    • 很抱歉没有清楚地发布问题。我现在已经编辑过了。它实际上是一个虚拟机,我使用的是 C。
    • 哦,对不起。我在想一个应用程序。在那种情况下,我提到的关于配置转换的内容在这里并不适用。您能否编写一个脚本来查看系统变量 %ROLEROOT% 是否已设置? ROLEROOT 是 Azure 维护的一个变量,表示角色的根位置,因此如果您检查它并返回一个值,您可以执行任何 Azure 特定的操作。
    • 我应该在哪里运行该脚本?在我的虚拟机(linux)还是在天蓝色?
    猜你喜欢
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2017-06-25
    • 2017-10-04
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    相关资源
    最近更新 更多