[英]How to use appsettings.json in Asp.net core 6 Program.cs file
[英]how to read UrlPrefixes from appsettings in program.cs - asp.net core 3.1
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseHttpSys(options =>
{
options.UrlPrefixes.Add("how to get url from appsettings");
});
webBuilder.UseStartup<Startup>();
})
//host as window service
.UseWindowsService();
}
应用设置配置,
"HttpSysOptions": {
"UrlPrefix": "http://localhost:8099/"
}
看起来我可以使用hostingContext.Configuration
,但它在UseHttpSys
中不可用,该怎么做? 谢谢!
IWebHostBuilder.UseHttpSys(Action)
由两部分组成:注册所需的服务和配置HttpSysOptions
。 您可以通过仅注册所需的服务并自己配置选项来拆分它。 当你这样做时,你可以访问托管上下文:
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseHttpSys();
webBuilder.ConfigureServices((context, services) =>
{
services.Configure<HttpSysOptions>(options =>
{
options.UrlPrefixes.Add(context.Configuration["HttpSysOptions:UrlPrefix"]);
});
});
webBuilder.UseStartup<Startup>();
})
.UseWindowsService();
这应该有效:
public static IHostBuilder CreateHostBuilder(string[] args)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true)
.Build();
string urlPrefix = configuration.GetSection("HttpSysOptions")["UrlPrefix"];
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseHttpSys(options =>
{
options.UrlPrefixes.Add(urlPrefix);
});
webBuilder.UseStartup<Startup>();
})
//host as window service
.UseWindowsService();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.