gpt4 book ai didi

c# - 如何更改在 WorkerService 中搜索 appsettings.json 的位置

转载 作者:行者123 更新时间:2023-12-04 10:28:15 31 4
gpt4 key购买 nike

我该如何更改appsettings.json.Net Core 3.1 Worker Service 中搜索项目

我见过几个Asp.Net Core 2.*示例,但没有用于 3.1 .
下面是我的 Program.cs文件。我知道我需要在这里改变一些东西,但我不确定是什么。

public class Program
{
public static void Main( string[ ] args )
{
CreateHostBuilder( args ).Build( ).Run( );
}

public static IHostBuilder CreateHostBuilder( string[ ] args ) =>
Host.CreateDefaultBuilder( args )
.UseWindowsService( )
.ConfigureServices( ( hostContext, services ) =>
{
services.AddHostedService<Worker>( );
} );
}

为什么我想要这个

我需要将此应用程序容器化为 WindowsServerCore容器。 appsettings.json需要可供现场技术人员使用且易于编辑。

我正在计划 bind mounting带有 appsettings.json 的目录从主机到容器。我无法 bind mount目录进入我的应用程序 execution目录,因为它会隐藏我的 executable .这意味着我需要 bind mount进入容器中的其他目录(例如,C:\Configuration)。

正因为如此,我想改变 framework的地方搜索我的 appsettings.json .

最佳答案

警告 : 我还没有运行代码片段。

您可以创建 ConfigurationBuilder 的新实例。直接而不是使用 CreateDefaultBuilder .代码看起来类似于以下内容:

Host.CreateDefaultBuilder( args )
.ConfigureAppConfiguration(
(context, configurationBuilder) =>
{
configurationBuilder.SetBasePath("YOUR PATH")
.AddJsonFile("appsettings.json", false)
})
})
.UseWindowsService( )
.ConfigureServices( ( hostContext, services ) =>
{
services.AddHostedService<Worker>( );
} );

否则,不要使用 Default您也可以创建自己的设置 ConfigurationBuilder从头开始如下:
public static IConfiguration CreateConfiguration()
{
var configurationBuilder = new ConfigurationBuilder()
.SetBasePath("YOUR PATH")
.AddJsonFile("appsettings.json", false)
.AddEnvironmentVariables();
return configurationBuilder.Build();
}

关于c# - 如何更改在 WorkerService 中搜索 appsettings.json 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60537358/

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