当asp.net核心进程启动时,如何获取应用服务的插槽名称(生产或登台)。
HTTP_HOST环境变量似乎没有在启动时设置,我没有要检查的http请求。
答案 0 :(得分:4)
如果我们想获取主机名,您可以使用环境变量 WEBSITE_HOSTNAME 来执行此操作。
var hostName = Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME");
如果您在插槽环境中运行它,那么您将获得值youwebsiteName-slotName.azurewebsites.net
。或者,如果您在生产环境中运行它,您将获得值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;
}