Kestrel: получить доступ к паре (парам) IP + портов, которые он прослушивает - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужны пары прослушивающих IP + портов, чтобы иметь возможность пересылать их через реализацию NAT. Однако, за исключением запроса (когда HttpContext становится доступным), я не вижу простого способа получить доступ к этой информации.

Я заметил, что у кого-то еще был такой же вопрос на Определите порт в ядре asp.net , но он остался без ответа.

У кого-нибудь есть подсказка, чтобы ударить меня? Спасибо!

1 Ответ

0 голосов
/ 05 сентября 2018

Интерфейс IWebHost имеет свойство ServerFeatures, которое является экземпляром IFeatureCollection. Если вы хотите получить адрес и порт сервера до создания HttpContext, вы можете получить их по:

public static void Main(string[] args)
{
    var host = CreateWebHostBuilder(args).Build();

    var serverAddresses = host.ServerFeatures.Get<IServerAddressesFeature>();

    // ... use serverAddresses as you like

    host.Run();
}

Обратите внимание, что адрес сервера здесь - это Address:Port, прослушиваемый WebHost, а не IIS или nginx.

...