我可以在 ASP.net Core 2.0 Preview 中的 appsettings.json 中设置监听 URL 吗?

Can I set listen URLs in appsettings.json in ASP.net Core 2.0 Preview?

我正在 .net Core 2.0 运行 时间上为 运行 创建一个 ASP.net Core 2.0 应用程序,两者目前都处于预览版本中。但是,我无法弄清楚如何让 Kestrel 使用默认 http://localhost:5000 listen URL.

以外的其他内容

我可以 Google 讨论的大多数文档都在讨论 server.urls 设置,即使在 1.0 预览版中似乎也已更改为 urls,但是两者都不起作用(转向在调试日志记录上,Kestrel 告诉我没有配置侦听端点)。

很多文档也谈到了 hosting.json 而我不能使用默认的 appsettings.json。但是,如果我比较推荐的加载新配置的方法,这看起来与新 WebHost.CreateDefaultBuilder 方法所做的非常相似,除了它加载 appsettings.json.

我目前不明白 appsettings.json 和 IConfigureOptions<T> 是如何相关的,如果有的话,所以我的问题可能是因为不了解 KestrelServerOptionsSetup 实际上是什么

我用它工作了

public static IWebHost BuildWebHost(string[] args) => 
        WebHost.CreateDefaultBuilder(args)
            .UseConfiguration(new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("hosting.json", optional: true)
                .Build()
            )
            .UseStartup<Startup>()
            .Build();

还有 hosting.json

{ "urls": "http://*:5005;" }

像以前一样适合我

WebHost.CreateDefaultBuilder(args)
    .UseConfiguration( new ConfigurationBuilder().AddCommandLine(args).Build() )
    .UseStartup<Startup>()
    .Build();

然后

dotnet myapp.dll --urls "http://*:5060;"
以上的

None 对我有用。这个对我有用:

public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
            .UseKestrel(options =>
            {
                options.Listen(System.Net.IPAddress.Loopback, 44306, listenOptions =>
                {
                    listenOptions.UseHttps("mysertificate.pfx", "thecertificatePassword");
                });
            })
        .Build();

(将44306改成自己喜欢的端口)

这方面可能会有很多帮助

要在 appsettings.json 中设置侦听 URL,请添加 "Kestrel" 部分:

"Kestrel": {
    "EndPoints": {
        "Http": {
            "Url": "http://localhost:5000"
        }
    }
}

参考:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2