使用 Kestrel 时可配置的端口号?

Configurable port number when using Kestrel?

我已完成以下操作,但仍然无效。 运行 dotnet myapp.dll 仍然显示它正在收听 http://localhost:5000

  1. 创建hosting.json

代码:

{
  "server.url": "http://*:5001"
}
  1. 已更新Program.cs

代码:

public class Program
{
    public static void Main(string[] args)
    {
        var config = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("hosting.json", optional: true, reloadOnChange: true)
            .Build();

        var host = new WebHostBuilder()
            .UseConfiguration(config) // added
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            //.UseUrls("http://*:5001")
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
}
  1. 已更新 project.json

代码:

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config",
      "NLog.config",
      "hosting.json"
    ]
  1. 您需要更改顺序:.SetBasePath 应该在读取文件之前调用

    var config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("hosting.json", optional: true, reloadOnChange: true)
        .Build();
    
  2. 使用server.urls,而不是server.url