部署TypeScript Express应用至Azure App Services遇权限错误求助
检查启动命令配置
确认Azure应用「配置」>「通用设置」里的启动命令是否指向编译后的入口文件,比如编译后入口是build/server.js,启动命令要设为node build/server.js,避免使用默认的npm start(如果package.json的start脚本还是指向ts-node会直接报错)。验证build产物完整性
登录Kudu控制台(应用URL后加.scm.azurewebsites.net),进入site/wwwroot/build目录,确认编译后的文件(如server.js、依赖模块)是否完整。如果是手动部署,要确保本地build后的所有文件都上传到位;如果是自动部署,检查部署日志里是否有build步骤的报错。确认端口配置
Express应用不能硬编码端口,必须使用Azure提供的环境变量,代码里要写:const port = process.env.PORT || 3000;,否则会因端口不匹配导致服务无法启动。查看日志定位错误
在Azure门户「监控」>「日志流」查看实时启动日志,或者在Kudu的Debug console>「LogFiles」目录下查看application.log,里面会有具体错误信息——比如模块缺失、语法错误、文件权限问题等,这是排查核心。检查虚拟路径配置
如果把访问路径改为site\wwwroot\build,要在Azure「配置」>「虚拟应用程序和目录」里设置:将根路径/指向site\wwwroot\build,并勾选「应用程序」选项,避免路径配置冲突。确认依赖安装状态
确保部署过程中执行了npm install和npm run build。如果用CI/CD工具(如GitHub Actions、Azure Pipelines),检查yml文件是否包含这两个步骤:- run: npm install - run: npm run build
内容的提问来源于stack exchange,提问作者IDCetim Cetim

