Asp.Net Core WebAPI如何修改监听地址?部署后无法访问咨询
嘿,这个问题我太熟了!你的WebAPI现在只盯着服务器自己的回环地址(localhost),外部请求根本进不来,咱们一步步把它搞定:
第一步:修改WebAPI的监听地址
默认情况下,ASP.NET Core部署后可能会绑定到localhost,这就只有服务器本地能访问。你得让它绑定到所有可用的网络接口,有三种简单方式:
方式1:在代码里硬配置
找到项目里的Program.cs,修改CreateWebHostBuilder方法,加上UseUrls指定监听地址:public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseUrls("http://0.0.0.0:53115") // 关键:0.0.0.0表示监听所有网络接口 .UseStartup<Startup>();重新发布部署即可。
方式2:用环境变量临时设置
在启动应用前,先执行这条命令设置环境变量:export ASPNETCORE_URLS="http://0.0.0.0:53115"然后再正常启动你的API程序。
方式3:启动命令直接指定
启动应用时追加--urls参数,不用改代码也能生效:dotnet YourApiProject.dll --urls "http://0.0.0.0:53115"
第二步:开放Ubuntu服务器的53115端口
就算应用绑定了正确地址,防火墙拦着也白搭。Ubuntu 16.04默认用ufw防火墙,执行下面的命令开放端口:
sudo ufw allow 53115/tcp sudo ufw reload
可以用sudo ufw status确认端口是否已经成功开放。
第三步:检查网络层面的连通性
- 先在服务器本地用
curl http://localhost:53115/api/values测试,确认应用本身运行正常。 - 从你的本地机器ping服务器的IP,看看基础网络是否连通。如果ping不通,可能是服务器的网络配置问题。
- 要是用的云服务器(比如阿里云、AWS),别忘了去控制台检查安全组/防火墙规则,确保53115端口的TCP入站流量是允许的——这一步很多人容易忘!
第四步:确认应用的运行状态
有时候应用看起来在跑,但实际有隐藏报错。如果是用systemd托管的服务,可以用这条命令看状态:
sudo systemctl status your-api-service-name
或者直接查看应用的日志输出,排查有没有启动异常。
按这几步操作下来,外部应该就能正常访问你的API了!
内容的提问来源于stack exchange,提问作者Admiral Land
相关产品推荐
相关产品推荐

