asp.net - 在启动时获取 azure 应用服务插槽名称?
问题描述
当 asp.net 核心进程启动时,如何获取我的应用程序服务的插槽名称(生产或暂存)。
HTTP_HOST 环境变量似乎没有在启动时设置,我没有要检查的 http 请求。
解决方案
如果我们想获取主机名,您可以使用环境变量WEBSITE_HOSTNAME来做到这一点。
var hostName = Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME");
如果您在插槽环境中运行它,那么您将获得 value youwebsiteName-slotName.azurewebsites.net
。或者,如果您在生产环境中运行它,您将获得 value youwebsiteName.azurewebsites.net
。
更新:
我们可以使用 appsetting 插槽来做到这一点。
1.转到插槽webApp并配置appsetting并检查插槽设置。
2.请使用以下代码获取插槽名称。
string name = string.Empty;
var sitName = Environment.GetEnvironmentVariable("APPSETTING_WEBSITE_SITE_NAME", EnvironmentVariableTarget.Process);
var slotName = Environment.GetEnvironmentVariable("APPSETTING_KeyName", EnvironmentVariableTarget.Process); //APPSETTING_Test_Slot
if (!string.IsNullOrEmpty(slotName))
{
name = sitName + "-" + slotName;
}
else
{
name = sitName;
}
推荐阅读
- ios - 在 Swift 中使用来自 Snapchat 的 StickerKit
- oracle - 升级到 nHibernate v5.x 后导致 Oracle DB 上的 DateTime 错误
- html - Django CreateView 表单无法提交
- android - 检查firebase警报订阅的电子邮件警报后仍然没有收到任何电子邮件
- android - 设置文本的最大长度时撰写文本字段的奇怪行为
- sql - 如何在Oracle中将`(Ab56.12345)some_string`的一列字符串拆分为两列`Ab.12345`,`some_string`并加入原始表?
- c# - 如何根据单元格的内容自动调整列宽,并输入隐藏行中的内容
- javascript - TypeError:无法读取 Invite Logger 的未定义 Discord.js 的属性“获取”
- mysql - 我如何配置以跳过事务恢复
- java - 如何为 BlobContainerClient 设置 dfs insted blob 端点