服务未侦听来自 hosting.json 的端口

service not listening on port from hosting.json

这是我的 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()
                .UseKestrel()
                //.UseUrls("http://*:50000")
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }
    }

我有一个hosting.json如下。

{
  "server.urls": "http://*:5011"
}

我的 project.json 包含以下内容

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

然而,当我从 Visual Studio 内部或 VS 外部(仅通过启动可执行文件)运行 它时,我看到以下内容

Now listening on: http://localhost:5000

为什么它不像 hosting.json 那样使用端口 5011?

您正在创建 ConfigurationBuilder,但并未使用它。您可以像这样使用配置生成器 - .UseConfiguration(config)。这是修改后的代码。

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()
        .UseKestrel()
        .UseConfiguration(config)
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .Build();

    host.Run();
}