You need to enable JavaScript to run this app. Azure DevOps部署项目至IIS时如何配置app_offline页面正常显示
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps部署项目至IIS时如何配置app_offline页面正常显示

IIS部署环节app_offline.htm正常生效的配置指南

核心生效规则先明确

按照IIS的原生判定逻辑:只要当前映射的站点物理根目录下存在app_offline.htm文件,IIS就会自动中断该站点的所有应用请求,直接返回这个页面给所有访问者,直到文件被移除。所有配置的核心目标,就是保证部署流程中这个文件能在正确的时机、放到IIS可识别的根路径下。

两种可落地的配置方案

方案1:直接复用Azure DevOps部署任务的内置能力(无需手动维护源码路径)

这是和你现有发布流程适配成本最低的方式:

  • 找到发布流水线里负责IIS部署的IIS Web App Deploy任务配置页
  • 展开「部署离线设置」分组,做两个配置:
    • 勾选部署前让应用离线选项:任务会自动在部署启动时在站点根目录写入临时离线页
    • 如果要用你自己写的自定义app_offline.htm,直接把这个文件的完整物理路径,填到「离线页路径」输入框中
  • 这套机制不需要你手动把文件放到项目源码目录里:任务会在部署全流程自动处理文件的放置和清理,部署完成后自动删除根目录下的离线文件,让站点恢复正常访问。

方案2:通过项目源码携带离线文件(适配自定义发布流程场景)

如果你不想用内置任务能力,想通过代码仓库把文件随发布包带上线,就要严格按照路径规则放置:

  • 正确放置位置:把你写好的app_offline.htm直接放到和项目文件(.csproj/.vbproj)同级的项目根目录下
  • 必须配置文件的生成属性:右键点击该文件,在属性面板里把「复制到输出目录」选项设置为如果较新则复制
  • 以上配置的效果是:项目编译打包时,app_offline.htm会被直接输出到发布包的根目录,最终随发布流程落到IIS站点的物理根路径下,满足IIS的离线触发规则。

容易导致生效失败的常见问题

  • 不要把文件放到解决方案根目录:解决方案根目录和项目编译的输出目录相互独立,这个位置的文件不会被打进发布包
  • 文件名必须严格匹配:必须是完整的app_offline.htm,大小写、后缀名错配都会导致IIS无法识别
  • 最终检查文件层级:部署过程中要确认app_offline.htm是和站点下的web.config处于同一级目录,放在任意子文件夹内的同名文件,都不会触发站点全局离线。

内容的提问来源于stack exchange,提问作者Muthu mani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 11:06:04