服务没有从hosting.json监听端口

时间:2017-04-28 00:25:40

标签: json asp.net-core asp.net-core-1.0 asp.net-core-webapi

这是我的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外部运行它时(仅通过启动可执行文件),我看到以下

  

现在聆听:http://localhost:5000

为什么它没有在hosting.json中使用端口5011?

1 个答案:

答案 0 :(得分:4)

您正在创建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();
}