我刚刚在我的一个Azure App Services中创建了一个“临时”插槽。
在Azure门户的该插槽的“应用程序设置”中,我创建了一个新密钥,如下所示:
...并且将其设置为“广告位设置”,因为我不希望交换此值。
当我在.NET Core项目中执行代码时,Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")
返回null
。只要在计算机环境变量中设置了该值,它就可以在本地运行。
我想念什么吗?
答案 0 :(得分:1)
Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")
来获取应用程序设置应该可以在Azure WebApp上运行。我认为该值已被其他代码覆盖。
您可以通过以下方式对其进行调试。
1。检查暂存kudu(https://yousitename-staging.scm.azurewebsites.net/Env.cshtml)以检查环境变量 ASPNETCORE_ENVIRONMENT 。
2。我们也可以remote debug插入VS。
以下是我的测试步骤:
1。创建一个.net核心项目。
2。为现有Webpp创建一个插槽,并为该插槽设置app
3。使用kudu工具检查环境变量
4。在index.chtml.cs文件中添加以下代码
var appsetting = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
ViewData["appseting"] = appsetting;
5。在index.chtml文件中,将标题更改为appsetting值
@page
@model IndexModel
@{
ViewData["Title"] = ViewData["appseting"];
}
6。以调试模式将WebApp发布到Azure
7。检查主页标题。
答案 1 :(得分:0)
不确定在哪里/如何使用Environment.GetEnvironmentVariable(“ ASPNETCORE_ENVIRONMENT”),但是在我的项目中我以不同的方式检索它。我在Startup.cs中检索到它。您可以尝试类似的方法,看看是否能通过这种方式获得它吗?
public Startup(IHostingEnvironment env, ILogger<Startup> logger)
{
var envName = env.EnvironmentName;
}
这应该在envName变量中为您提供环境名称。如果可行,我可以在代码中的其他位置为您提供帮助。