Как я могу изменить порт прослушивания Kestrel (AspNetCore) по переменным среды в netcore3.1 - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть проект aspnetcore3.1, и я хочу установить пользовательский порт для Kestrel (отличный от 5000 по умолчанию). Возможно, я могу сделать это в Program.cs, добавив

Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
    webBuilder.ConfigureKestrel(options =>
    {
        options.ListenLocalhost(80);
    });
    webBuilder.UseStartup<Startup>();
})

Но это не может быть применено к моему случаю, поэтому удивляюсь, как это можно сделать с помощью переменной среды?

1 Ответ

3 голосов
/ 10 февраля 2020

Существует несколько способов достижения этого , как описано здесь .

1) Переменная среды ASPNETCORE_URLS.
2) - аргумент командной строки --urls.
3) URL-адрес ключа конфигурации хоста.
4) Метод расширения UseUrls.

Чтобы добиться этого с помощью переменной среды, просто создайте переменную среды с именем ASPNETCORE_URLS и задайте значение для URL-адреса. вы хотели бы использовать

Обычно это будет http://+:<port> или https://+:<port>

Другой метод, который не описан выше, - через файл hostsettings. json.

Вы можете настроить URL и порт, создав файл настроек хоста. json и добавив ключ urls, затем добавьте настройки хоста. json к вашему IConfigurationBuilder при сборке WebHostBuilder.

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/web-host?view=aspnetcore-3.1#override -конфигурация

Ниже приведен фрагмент кода ссылки на случай, если эта ссылка когда-нибудь прекратится.

Создайте настройки хоста. json файл, содержащий ключ urls с вашими значениями

{
    urls: "http://*:5005"
}

Зарегистрируйте настройки хоста. json в вашем IConfigurationBuilder

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args)
    {
        var config = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false)
            .AddJsonFile("hostsettings.json", optional: true)
            .AddCommandLine(args)
            .Build();

        return WebHost.CreateDefaultBuilder(args)
            .UseUrls("http://*:5000")
            .UseConfiguration(config)
            .UseStartup<Startup>();
    }
}
...