【问题标题】:Azure Hosted Service: VM Machine NameAzure 托管服务:VM 机器名称
【发布时间】:2014-04-17 09:28:33
【问题描述】:

我们在 Azure 上部署了一个作为托管服务的应用。如果我们部署服务并指定我们需要 10 个实例,它将创建 10 个托管应用程序的虚拟机。我的问题是,如果在应用程序的代码中我引用 System.Environment.MachineName 我是否保证应用程序正在运行的每个实例都有一个唯一的机器名称?所以,理论上,如果我有一个每次点击时都简单显示 System.Environment.MachineName 的页面,最终我会看到 10 个不同的机器名称吗?由于您显然可以在同一个机器上运行多个虚拟机,因此我不确定从技术上讲您是否可以在同一物理硬件上拥有两个实例,如果您这样做了,它们会返回相同的 System.Environment.MachineName 吗?或者 System.Environment.MachineName 在同一个盒子上的虚拟机中是唯一的。

如果我不能保证有 10 个唯一名称,我是否可以从代码中获得足够唯一标识实例的任何数据,以便我可以识别我的应用程序的所有 10 个实例何时都被命中?

【问题讨论】:

    标签: azure virtual-machine


    【解决方案1】:

    以下标识符对于每个角色的部署都是唯一的,检查这是否有帮助

    http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.deploymentid.aspx

    【讨论】:

    • 部署通常是用于部署到登台或生产环境的进入服务的术语。您确定每个 VM 的 DeploymentID 都不同吗?或者它是部署的标识符,无论它在哪个 VM 上?
    • 这导致了答案,但最好使用的是 RoleEnvironment.CurrentRoleInstance.Id。
    【解决方案2】:

    我们是在谈论托管在云服务中的 Web / Worker 角色吗?如果是这样,您可以使用RoleEnvironment 类来获取这些详细信息:http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.aspx

    【讨论】:

      猜你喜欢
      • 2013-05-15
      • 1970-01-01
      • 2016-09-07
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      相关资源
      最近更新 更多