You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSTS托管代理与私有代理的部署差异及托管代理工作机制咨询

托管代理(Hosted Agent)与私有代理(Private Agent)的部署区别

首先得给你点个赞,你对私有代理的理解基本是准确的!先再把私有代理的核心逻辑补全一点,再对比托管代理的工作方式,尤其是你提到的ASP.NET应用部署到IIS这个场景:

一、私有代理的部署逻辑(补充你的理解)

  • 私有代理是你自己完全掌控的机器(可以是本地物理机、内部服务器甚至云虚拟机),你需要手动安装代理程序并注册到你的VSTS(现在叫Azure DevOps)组织。
  • 它会持续监听VSTS的任务队列,一旦有匹配的构建/部署触发,就拉取源代码到本地,执行你配置的MSBuild编译、PowerShell脚本等操作。
  • 因为它运行在你的私有网络里,所以可以直接访问内部的IIS服务器、数据库等资源——这也是很多企业用它的核心原因:不用把内部服务暴露到公网就能完成部署。

二、托管代理的工作方式

托管代理是微软Azure托管的“一次性虚拟机”,完全不用你操心维护、更新、硬件问题,用完就销毁,核心特点和部署流程如下:

1. 基础运行逻辑

  • 每次触发构建/部署时,Azure DevOps会自动分配一台全新的虚拟机(预装了常用的构建工具:MSBuild、PowerShell、.NET SDK等),任务完成后立即销毁这台机器。
  • 它默认运行在微软的公网环境中,所以访问资源的能力和私有代理有本质区别。

2. 针对ASP.NET部署到IIS的场景

情况1:部署到Azure App Service(云端IIS)

这是托管代理最顺手的场景,流程非常简单:

  • 代理从VSTS拉取ASP.NET源代码,用MSBuild编译生成部署包(比如.zip格式)。
  • 直接使用Azure DevOps内置的「Azure App Service部署」任务,通过Azure的公网API将部署包推送到你的Azure App Service(本质是云端的IIS实例),全程不需要额外配置网络连通性。

情况2:部署到内部私有IIS服务器

这时候就需要解决托管代理(公网)到内部IIS(私有网络)的连通问题,常见的方案有两种:

  • 方案一:配置混合连接/VPN:在Azure和你的企业私有网络之间建立打通的通道,让托管代理能访问到内部IIS服务器。之后就可以用「IIS Web应用部署」任务,通过WinRM协议连接到内部IIS,推送部署包并完成配置。
  • 方案二:构建部署拆分:用托管代理完成编译打包,把部署包上传到VSTS的工件库(Artifact Repository),然后再触发一个用私有代理执行的部署任务——由私有代理从工件库拉取包,部署到内部IIS(这种方式兼顾了托管代理的省心和私有代理的内网访问能力)。

三、核心区别总结

维度托管代理私有代理
维护成本零维护,微软负责更新、硬件支撑自己维护机器、代理程序、环境配置
网络环境默认公网,访问内部资源需额外配置运行在你的私有网络,直接访问内部资源
环境一致性每次都是全新环境,无历史残留环境固定,可能有缓存/残留(需自行清理)
资源限制微软提供的配置固定,有并发限制自己配置硬件,可按需扩容调整

内容的提问来源于stack exchange,提问作者Regnard Groob

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:14:49