Windows Azure。获取唯一的应用程序实例ID

时间:2015-08-26 17:51:18

标签: asp.net azure azure-web-sites

我们使用"网站"在Windows Azure中。我需要获得唯一的应用程序实例。我知道" RoleEnvironment.CurrentRoleInstance.Id"但只要我知道它只适用于Web角色。因此,我正在考虑以下方式为每个实例获取唯一的应用程序ID。我对是否可以使用感兴趣。或者我错过了什么?

  1. 应用程序启动后,我会生成一些唯一的名称(在" Application_Start"方法中)。例如,Guid.NewGuid()。
  2. 一旦完成,我将这个唯一值存储在一些静态变量中。
  3. 当第二个实例启动时,重复步骤1和2,并生成一些其他新的唯一名称
  4. 这样我每个实例都有唯一的名称。当然,一旦重新启动一个站点(或某个实例),我将获得新的绝对唯一值。但在我们的案例中它很好。

    如果您在此解决方案中发现任何陷阱,请告诉我

1 个答案:

答案 0 :(得分:1)

这应该可行,但当然GUID只会在w3wp进程的生命周期内出现。因此,每个w3wp进程都会有唯一的名称,这意味着每个实例都有唯一的名称。

如果您想使用更具针对性的唯一名称,可以尝试使用ARR亲和力Cookie。默认情况下,Azure Web应用程序使用粘性会话负载平衡器(在运行多个实例时)运行。它在HTTP响应中注入ARR亲和cookie,有助于将用户重定向到第一次与其建立会话的同一实例。

您还可以使用环境变量来唯一标识实例,即Environment.ComputerName