сервис не слушает на порту от хостинга.формат JSON


Вот моя программа.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();
        }
    }

У меня есть хостинг.json следующим образом.

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

Мой проект.json содержит следующие

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

Однако, когда я запускаю его либо из Visual Studio, либо за пределами VS (просто запустив исполняемый файл), я вижу следующее

А теперь слушайте дальше: http://localhost:5000

Почему он не использует порт 5011, как в хостинге.джсон?

1 2

1 ответ:

Вы создаете конфигурационный конструктор, но не используете его. Вы можете использовать конструктор конфигураций следующим образом.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();
}