【问题标题】:Kestrel: get access to IP+port pair(s) it's listening onKestrel:访问它正在侦听的 IP+端口对
【发布时间】:2018-09-05 13:14:25
【问题描述】:

我需要侦听 IP+端口对才能通过 NAT 实现转发它们。但是,除非有请求(此时 HttpContext 变得可访问),否则我看不到访问此信息的简单方法。

我注意到有人在 Determine port in asp.net core 上提出了同样的问题,但没有得到答复。

任何人有线索棒可以打我吗?谢谢!

【问题讨论】:

    标签: c# asp.net-core .net-core kestrel-http-server


    【解决方案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 是 WebHost 监听的 Address:Port ,而不是 IISnginx

    【讨论】:

    • 是的,我只需要 Kestrel 本身的详细信息。我会试一试,明天回复你。
    猜你喜欢
    • 2020-09-30
    • 2019-08-16
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2010-12-16
    • 1970-01-01
    相关资源
    最近更新 更多