如何将Azure DevOps Server部署为IIS默认网站下的Web应用
通过URL Rewrite实现Azure DevOps Express自定义路径访问
核心思路
保留Azure DevOps默认安装生成的"Azure DevOps Server"网站(绑定8080端口),在现有默认网站上配置URL Rewrite规则,将https://hostServerName.domain.com/DevOps/*的请求转发到DevOps网站的端口,同时调整DevOps的公共URL配置,适配新的访问路径。
操作步骤
1. 确认DevOps网站状态
- 打开IIS管理器,找到"Azure DevOps Server"网站,确认其绑定端口(默认8080),并验证
http(s)://localhost:8080可正常访问。
2. 安装URL Rewrite模块
- 打开IIS管理器的"管理"面板,点击"Web平台安装程序",搜索并安装URL Rewrite模块。
3. 配置反向代理规则
- 选中默认网站,进入右侧功能视图的"URL Rewrite"界面。
- 点击"添加规则",选择"反向代理规则"。
- 在配置界面:
- 输入转发目标:
localhost:8080(如果DevOps网站启用HTTPS,填写https://localhost:8080)。 - 若默认网站用HTTPS、DevOps用HTTP,勾选"启用SSL Offloading",确保客户端访问时保持HTTPS连接。
- 点击"确定"生成初始规则。
- 输入转发目标:
- 编辑规则适配/DevOps路径:
- 进入规则的"匹配URL"设置,将请求路径改为正则表达式:
^DevOps/(.*)。 - 在"操作"设置中,重写URL改为
{R:1},这样/DevOps/xxx会被转发到localhost:8080/xxx。 - 可选添加条件:排除已有应用路径(如
{REQUEST_URI}不匹配^/App1/、{REQUEST_URI}不匹配^/App2/),避免请求冲突。
- 进入规则的"匹配URL"设置,将请求路径改为正则表达式:
4. 调整DevOps公共URL配置
- 打开Azure DevOps Server Administration Console(应用层管理控制台)。
- 选择"应用层"->"Web应用程序",点击"更改URL"。
- 将公共URL修改为
https://hostServerName.domain.com/DevOps,保存配置。 - 重启"Azure DevOps Server"网站及相关服务,确保配置生效。
手动迁移错误的临时修复(可选)
如果仍想尝试将DevOps作为默认网站的子应用部署,解决程序集加载错误可尝试:
- 检查DevOps安装目录下
Web Services和queue文件夹的bin目录,确认是否包含Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0,缺失则从对应NuGet包下载dll放入该目录。 - 确保应用池的.NET Framework版本符合DevOps要求(通常为4.7.2及以上)。
- 验证应用池身份拥有DevOps安装目录的读写权限。
内容的提问来源于stack exchange,提问作者Giuseppe AINO




