使用Azure Zipdeploy UI部署应用出现无权限访问报错咨询
Azure App Service ZipDeploy 部署403权限错误修复方案
根因说明
两种部署方式的目录结构差异直接导致报错:
- VS Code Azure 扩展部署时,会自动将项目产物直接上传到 App Service 的
site/wwwroot根目录,同时自动生成适配运行环境的web.config配置,IIS 可正常寻址到入口文件,应用运行正常。 - ZipDeploy UI 部署时,若本地压缩包是直接选中项目外层文件夹生成的,解压后会在
wwwroot下新增一层嵌套文件夹,你手动添加的web.config要么存放路径错误,要么配置的入口路径和实际文件路径不匹配,IIS 无法找到可访问的入口资源,就会抛出 "You do not have permission to view this directory or page" 错误。
修复步骤
- 调整压缩包打包规则
不要选中项目外层文件夹压缩,打开本地项目的根目录,全选所有应用文件、静态资源、以及你编写的web.config后再进行压缩,确保压缩包根目录就是所有应用文件,不存在外层嵌套文件夹。 - 校验
web.config配置
可直接复用 VS Code 部署时自动生成的web.config内容,避免手写配置出现路径错误,以下为Node.js应用的参考配置:<configuration> <system.webServer> <handlers> <add name="iisnode" path="server.js" verb="*" modules="iisnode"/> </handlers> <rewrite> <rules> <rule name="StaticContent" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="false" /> </conditions> <action type="None" /> </rule> <rule name="DynamicContent"> <match url=".*" /> <action type="Rewrite" url="server.js" /> </rule> </rules> </rewrite> </system.webServer> </configuration> - 重新部署验证
将调整后的压缩包上传到 ZipDeploy UI 完成部署后,可进入 App Service 的 Kudu 控制台查看wwwroot目录结构,确认所有应用文件和web.config直接存放于wwwroot根目录,无嵌套文件夹即可正常访问。
快速替代方案
如果不想调整打包规则,可在 ZipDeploy 部署完成后,直接进入 Kudu 控制台,将嵌套文件夹内的所有文件剪切到 wwwroot 根目录,覆盖现有文件即可恢复访问。
内容的提问来源于stack exchange,提问作者Ravi Pandey
相关产品推荐
相关产品推荐

