C# asp.net core 2 web api集从appsettings托管url
在asp.net core 2 web api上,我希望能够根据appsettings.json文件中的值设置api将侦听的url(api作为windows服务运行)。我找不到实现它的方法,如何访问C# asp.net core 2 web api集从appsettings托管url,c#,asp.net-core,kestrel-http-server,C#,Asp.net Core,Kestrel Http Server,在asp.net core 2 web api上,我希望能够根据appsettings.json文件中的值设置api将侦听的url(api作为windows服务运行)。我找不到实现它的方法,如何访问I配置的实例 var pathToExe = Process.GetCurrentProcess().MainModule.FileName; var pathToContentRoot = Path.GetDirectoryName(pathToExe); return WebHost.Creat
I配置的实例
var pathToExe = Process.GetCurrentProcess().MainModule.FileName;
var pathToContentRoot = Path.GetDirectoryName(pathToExe);
return WebHost.CreateDefaultBuilder(args)
.UseContentRoot(pathToContentRoot)
.UseStartup<Startup>()
.UseUrls({value_from_appsettings})
.Build()
.RunAsService();
var pathToExe=Process.GetCurrentProcess().MainModule.FileName;
var pathToContentRoot=Path.GetDirectoryName(pathToExe);
返回WebHost.CreateDefaultBuilder(args)
.UseContentRoot(pathToContentRoot)
.UseStartup()
.UseUrls({value_from_appsettings})
.Build()
.RunAsService();
为了在进入WebHost.CreateDefaultBuilder
路径之前访问配置,您需要使用ConfigurationBuilder
构建自己的IConfiguration
实例
以您的问题为例,您可以使用以下内容:
var pathToExe = Process.GetCurrentProcess().MainModule.FileName;
var pathToContentRoot = Path.GetDirectoryName(pathToExe);
var appSettingsConfiguration = new ConfigurationBuilder()
.SetBasePath(pathToContentRoot)
.AddJsonFile("appsettings.json")
.Build();
return WebHost.CreateDefaultBuilder(args)
.UseContentRoot(pathToContentRoot)
.UseStartup<Startup>()
.UseUrls(appSettingsConfiguration["Your:Value"])
.Build()
.RunAsService();
var pathToExe=Process.GetCurrentProcess().MainModule.FileName;
var pathToContentRoot=Path.GetDirectoryName(pathToExe);
var appsetings配置=新配置生成器()
.SetBasePath(pathToContentRoot)
.AddJsonFile(“appsettings.json”)
.Build();
返回WebHost.CreateDefaultBuilder(args)
.UseContentRoot(pathToContentRoot)
.UseStartup()
.useURL(应用程序设置配置[“您的:值”])
.Build()
.RunAsService();
这在中有所解释,示例使用hosting.json
文件进行设置。它还利用了UseConfiguration
,允许您为URL等指定一个值,该值将自动拾取。可能会有所帮助。最终,您必须创建自己的IConfiguration
实例。我很难访问环境名称来添加appSettings.{environment}.json文件,我如何访问它?请尝试获取灵感。i、 e.Environment.GetEnvironmentVariable(“ASPNETCORE_Environment”)
另一种方法是使用与WebHostBuilder
相同的方法,但这需要先创建另一个IConfiguration
。