如何修复Windows环境Azure App Service端口80权限及端口占用问题?
解决Azure App Service(Windows)Node/Express端口问题
核心问题说明
Azure App Service Windows环境中,不能硬编码固定端口号(比如80、3000):
- 80属于特权端口,App Service运行进程是低权限身份,无法直接监听,这就是你遇到
Error: listen eacces: permission denied 0.0.0.0:80的原因; - 3000端口可能被平台内置服务占用,所以会提示端口被占用。
Azure文档里提到的80是平台对外提供访问的端口,而非你的应用需要监听的端口,平台会自动完成外部端口到应用实际监听端口的映射。
修复步骤
修改Express应用的端口配置
在你的入口文件(比如app.js)中,改为读取环境变量PORT来设置监听端口,示例代码:const port = process.env.PORT || 3000; // 本地开发时默认用3000,部署后自动使用平台分配的端口 app.listen(port, () => { console.log(`Server running on port ${port}`); });App Service会自动为你的应用注入
PORT环境变量,应用只需监听这个端口即可。重新部署验证
修改代码后重新部署到App Service,不需要额外配置端口。外部访问时直接使用App Service的默认域名即可,无需添加端口号,平台会自动完成80/443端口到应用监听端口的转发。
内容的提问来源于stack exchange,提问作者Mark Hardy
相关产品推荐
相关产品推荐

