在代码中获取 Azure Web App 名称

Get Azure Web App name in code

有没有办法从代码中获取网络应用程序的名称。即,如果我已将我的应用程序部署到名为 my-webapp-dev-ne 的 Web 应用程序,我需要能够在代码中获取此名称。我无法将它添加到应用程序配置文件或任何其他方法的原因是同一个应用程序可以部署到多个地方。

Web 应用程序环境提供了一个名为 WEBSITE_SITE_NAME 的环境变量,其中包含名称。您可以像这样从 C# 代码访问它。

var siteName = Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME");

我会在您的 web.config 中将其设置为配置 - 例如:

  <appSettings>
    <add key="sitename" value="my-webapp-dev-ne" />
  </appSettings>

添加到 Rick 的回答中,您可以找到更多信息的环境设置 here

  • WEBSITE_SKU - 站点的 sku(可能的值:免费、共享、基本、标准)。
  • WEBSITE_COMPUTE_MODE - 指定网站是专用还是共享 VM/s(可能的值:共享、专用)。
  • WEBSITE_SITE_MODE - 站点模式(对于免费站点可以是受限模式,对于共享站点可以是基本模式,对于标准站点可以是空模式)。
  • WEBSITE_HOSTNAME - Azure 网站的站点主主机名(例如:site.azurewebsites.net)。请注意,此处不考虑自定义主机名。
  • WEBSITE_INSTANCE_ID - 表示站点 运行 所在的虚拟机的 ID(如果站点在多个实例上运行,每个实例将具有不同的 ID)。
  • WEBSITE_NODE_DEFAULT_VERSION - 本网站使用的默认节点版本。
  • WEBSOCKET_CONCURRENT_REQUEST_LIMIT - websocket 并发请求的限制。

如果您安装了 Microsoft.WindowsAzure.ConfigurationManager nuget,则可以执行此操作。

var siteName = CloudConfigurationManager.GetSetting("WEBSITE_SITE_NAME");

参考: CloudConfigurationManager Class