Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net core 2 web api集从appsettings托管url_C#_Asp.net Core_Kestrel Http Server - Fatal编程技术网

C# asp.net core 2 web api集从appsettings托管url

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

在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.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