首页 > 解决方案 > 如何从公共 Internet 访问 HTTP 端口 5001

问题描述

我有 Windows Server 2016 数据中心 x64、.NET Core SDK 5.0 预览版、Microsoft SQL Server 2019

在此处输入图像描述

在服务器上:https://localhost:5001/publisher/一切正常

在服务器上https://127.0.0.1:5001/publisher/一切正常

在服务器上:防火墙打开端口 5000-6000 出站

从我的电脑(或世界上的任何电脑)https://45.118.145.72:5011/publisher/all not ok

在此处输入图像描述

如何从公共互联网访问https://45.118.145.72:5011/publisher/all ?

在此处输入图像描述

标签: asp.net-core.net-coreipnatwindows-server

解决方案


Asp.NET 核心应用程序使用默认设置绑定到“localhost”网络接口。其他主机无法使用此网络接口。

UseUrls()您可以在主机设置期间修改它。

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.UseUrls("http://0.0.0.0:5001");
        });

例子:

webBuilder.UseUrls("http://127.0.0.1:5001"); // only from localhost
webBuilder.UseUrls("http://localhost:5001"); // only from localhost
webBuilder.UseUrls("http://0.0.0.0:5001");   // allow all hosts

文档:https ://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#kestrel-in-aspnet-core-apps


推荐阅读