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

时间:2016-09-19 19:52:07

标签: c# asp.net-core .net-core kestrel-http-server

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

  1. 创建 hosting.json
  2. 代码:

    {
      "server.url": "http://*:5001"
    }
    
    1. 更新了 Program.cs
    2. 代码:

      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
      2. 代码:

          "publishOptions": {
            "include": [
              "wwwroot",
              "Views",
              "Areas/**/Views",
              "appsettings.json",
              "web.config",
              "NLog.config",
              "hosting.json"
            ]
        

1 个答案:

答案 0 :(得分:2)

  1. 您需要更改顺序:在文件读取之前应调用.SetBasePath

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