c# - 如何从 program.cs 中的 appsettings 读取 UrlPrefixes - asp.net core 3.1

标签 c# asp.net-core httpsys

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();

关于c# - 如何从 program.cs 中的 appsettings 读取 UrlPrefixes - asp.net core 3.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61304037/

相关文章:

javascript - 在 C# 中执行 JavaScript

c# - ASP.NET Core 中 UseApplicationInsights/AddApplicationInsights 的简单注入(inject)器用法

asp.net-core - Razor View 未生成 Razor 页面的 href

mysql - Docker、AspNetCore、DB 连接字符串最佳实践

.net-core - 在使用Http.sys和URLPrefix时,如何配置dotnet core 3来提供React SPA?

c# - 将 XML 文件反序列化为 DTO

c# - WPF Applicationdeployment.isnetworkdeployed 总是返回 false

c# - 为什么递增和递减是一元运算