使用 IIS 将两个不同的 ASP.NET 应用程序部署到同一个 Azure VM

Deploy two different ASP.NET applications to the same Azure VM with IIS

网站 1:我在 Visual Studio 在线有一个 ASP.NET MVC 站点,正在构建然后从 Visual Studio 在线发布到那个虚拟机。

网站 2:我决定在 Visual Studio 中在线创建另一个 Solution/Project,并在同一个虚拟机上 运行 创建它(连续整合等)。作为为该项目设置部署组的一部分,我想为项目 1 添加 相同的 虚拟机(我相信我不能在项目之间共享部署组)。

当我在虚拟机上执行站点 2 的 VSTS 代理脚本时,第一个网站的目标变为 "offline",机器在 SITE 2 部署组中亮起,从 SITE 1 部署组中消失。

似乎只有一个 VSTS 代理可以设置为接收网站部署:

问题:如何使用 IIS 设置同一个虚拟机以接收同一个 VS Online 帐户中两个独立网站的部署?有没有办法在 Azure 虚拟机上设置多个 VSTS 代理?

可以在一台机器上为 VSTS 部署多个代理。在设置部署组时,您可以使用以下步骤在 Azure VM 或任何单台计算机中实现此目的。

  1. 复制目标注册PowerShell脚本到记事本。然后替换

    $env:SystemDrive\'vstsagent'

例如使用您偏好的代理的本地路径

'g:\vstsagentprojX'

这将为 g:\vstsagentprojX 中的项目 X 部署组设置安装代理。

  1. 替换

    --代理 $env:COMPUTERNAME

在带有项目特定名称的脚本中,例如

--agent chamindac.projx

  1. 然后注册Project X部署组的agent,会配置到指定文件夹,

并且具有唯一的服务名称,因为您已经为代理提供了项目特定名称。

按照与其他项目类似的步骤操作并更改其 PowerShell 脚本以具有

$env:SystemDrive\'vstsagent'

替换为本地文件夹的项目特定路径 say

'g:\vstsagentprojQ'

然后将 --agent $env:COMPUTERNAME 更改为项目特定名称,例如

--agent chamindac.projq

然后运行为第二个项目创建部署组代理的脚本。

这将在同一台机器上创建两个具有唯一名称的代理服务。

您应该在两个团队项目部署组中有两个在线目标。

正如 ChamindaC 所说,您可以更新脚本以设置新的部署代理。

另一种方法是您可以手动配置它:

  1. 下载代理(同build/release)代理https://{your_account}.visualstudio.com/_admin/_AgentPool
  2. 将 zip 文件解压到一个文件夹(例如 c:\myagent
  3. 运行 以管理员身份使用命令行并将上下文更改为 (cd c:\myagent) 该文件夹(第 2 步)
  4. 运行 .\config.cmd –deploymentgroup 命令并在询问时指定参数

另一方面,您可以使用与网站 1 相同的代理。