gpt4 book ai didi

c# - 如何为控制台应用程序设置 ASPNETCORE_ENVIRONMENT?

转载 作者:行者123 更新时间:2023-12-03 22:53:16 25 4
gpt4 key购买 nike

我有以下包含托管服务的简单控制台应用程序:

    public static async Task Main(string[] args)
{
using (var host = Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
// db context
services.AddEntityFrameworkNpgsql()
.AddDbContext<ApplicationDbContext>();

// hosted services
services.AddHostedService<ConsumeScopedServiceHostedService>();
services.AddScoped<ProcessManuallySendings>();

// services
services.AddHttpClient<ISendPushService, SendPushService>(x
=>
{
x.Timeout = TimeSpan.FromSeconds(65);
});
})
.Build())
{
// Start the host
await host.StartAsync();

// Wait for the host to shutdown
await host.WaitForShutdownAsync();
}
}
}

它适用于我的数据库,这意味着它需要连接字符串。我有三个 appsettings.json文件:

enter image description here

在开发服务器上我将使用 Development环境,关于生产- Production .在我的本地机器上,我将使用 Local .这很简单。
我将在 ASPNETCORE_ENVIRONMENT 的帮助下获得它(操作系统环境变量)。

我使用 Linux,在我的 shell (zsh) 配置文件中,我有:

enter image description here

当我输入我的终端 $ echo $ASPNETCORE_ENVIRONMENT我有 Local .
但是当我启动我的控制台应用程序时
$ dotnet run // in the project folder

它试图从 Production 开始环境。
查看调试输出:

enter image description here

那么如何设置环境呢?为什么 Os 变量不起作用?

最佳答案

根据docs对于 .Net Core 3.0 及更高版本,主机配置由带有 DOTNET_ 前缀的环境变量提供(例如,DOTNET_ENVIRONMENT)。

如果这不起作用,您还可以尝试在您的个人资料中像这样在 launchSettings.json 中设置环境变量。

"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT" : "Development"
}

关于c# - 如何为控制台应用程序设置 ASPNETCORE_ENVIRONMENT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60206559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com