如何通过Azure DevOps将Umbraco 8部署到AWS Beanstalk的IIS默认网站而非子应用?
解决Umbraco 8部署到AWS Beanstalk IIS默认网站的问题
核心方案:通过.ebextensions配置强制部署到IIS默认网站根目录
AWS Elastic Beanstalk默认会将应用部署到IIS的子应用,要修改这个行为,需要在项目中添加.ebextensions配置文件覆盖默认IIS设置:
- 在Umbraco项目根目录创建
.ebextensions文件夹 - 在该文件夹内新建
iis-root-deploy.config文件,写入以下配置:
container_commands: 01_set_root_path: command: 'appcmd set site "Default Web Site" -physicalPath:"C:\inetpub\wwwroot"' 02_remove_default_subapp: command: 'appcmd delete app "Default Web Site/Default Web Site"'
说明:第一条命令将默认网站的物理路径指向Beanstalk部署根目录
C:\inetpub\wwwroot,第二条命令删除默认创建的子应用,确保Umbraco直接运行在根站点下。
验证Azure DevOps部署任务配置
检查Azure DevOps中的「Deploy to Elastic Beanstalk Application Action」任务:
- 确保Application Name和Environment Name正确对应目标Beanstalk环境
- 确认部署包是完整的Umbraco站点文件,没有嵌套目录结构(避免因包结构导致子目录部署)
临时适配方案:调整Umbraco URL配置(不推荐)
如果暂时无法修改Beanstalk配置,可通过Umbraco自身配置适配子应用路径:
- 在
web.config中添加或修改<add key="umbracoPath" value="/你的子应用路径" /> - 调整Umbraco后台的站点URL设置,确保内部链接生成正确
内容的提问来源于stack exchange,提问作者Modika
相关产品推荐
相关产品推荐

