我需要侦听IP +端口对,以便能够通过NAT实现转发它们。但是,除非有一个请求(即HttpContext变得可访问),否则我没有看到一种访问此信息的简便方法。
我注意到其他人在Determine port in asp.net core上也有同样的问题,但是没有得到答案。
有人有线索打我吗?谢谢!
答案 0 :(得分:1)
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();
}
请注意,这里的serverAddresses是Address:Port
监听的WebHost
,而不是IIS
或nginx
监听的。