使用 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 或任何单台计算机中实现此目的。
复制目标注册PowerShell脚本到记事本。然后替换
$env:SystemDrive\'vstsagent'
例如使用您偏好的代理的本地路径
'g:\vstsagentprojX'
这将为 g:\vstsagentprojX 中的项目 X 部署组设置安装代理。
替换
--代理 $env:COMPUTERNAME
在带有项目特定名称的脚本中,例如
--agent chamindac.projx
- 然后注册Project X部署组的agent,会配置到指定文件夹,
并且具有唯一的服务名称,因为您已经为代理提供了项目特定名称。
按照与其他项目类似的步骤操作并更改其 PowerShell 脚本以具有
$env:SystemDrive\'vstsagent'
替换为本地文件夹的项目特定路径 say
'g:\vstsagentprojQ'
然后将 --agent $env:COMPUTERNAME 更改为项目特定名称,例如
--agent chamindac.projq
然后运行为第二个项目创建部署组代理的脚本。
这将在同一台机器上创建两个具有唯一名称的代理服务。
您应该在两个团队项目部署组中有两个在线目标。
正如 ChamindaC 所说,您可以更新脚本以设置新的部署代理。
另一种方法是您可以手动配置它:
- 下载代理(同build/release)代理
https://{your_account}.visualstudio.com/_admin/_AgentPool
- 将 zip 文件解压到一个文件夹(例如
c:\myagent
)
- 运行 以管理员身份使用命令行并将上下文更改为 (
cd c:\myagent
) 该文件夹(第 2 步)
- 运行
.\config.cmd –deploymentgroup
命令并在询问时指定参数
另一方面,您可以使用与网站 1 相同的代理。
网站 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 或任何单台计算机中实现此目的。
复制目标注册PowerShell脚本到记事本。然后替换
$env:SystemDrive\'vstsagent'
例如使用您偏好的代理的本地路径
'g:\vstsagentprojX'
这将为 g:\vstsagentprojX 中的项目 X 部署组设置安装代理。
替换
--代理 $env:COMPUTERNAME
在带有项目特定名称的脚本中,例如
--agent chamindac.projx
- 然后注册Project X部署组的agent,会配置到指定文件夹,
并且具有唯一的服务名称,因为您已经为代理提供了项目特定名称。
按照与其他项目类似的步骤操作并更改其 PowerShell 脚本以具有
$env:SystemDrive\'vstsagent'
替换为本地文件夹的项目特定路径 say
'g:\vstsagentprojQ'
然后将 --agent $env:COMPUTERNAME 更改为项目特定名称,例如
--agent chamindac.projq
然后运行为第二个项目创建部署组代理的脚本。
这将在同一台机器上创建两个具有唯一名称的代理服务。
您应该在两个团队项目部署组中有两个在线目标。
正如 ChamindaC 所说,您可以更新脚本以设置新的部署代理。
另一种方法是您可以手动配置它:
- 下载代理(同build/release)代理
https://{your_account}.visualstudio.com/_admin/_AgentPool
- 将 zip 文件解压到一个文件夹(例如
c:\myagent
) - 运行 以管理员身份使用命令行并将上下文更改为 (
cd c:\myagent
) 该文件夹(第 2 步) - 运行
.\config.cmd –deploymentgroup
命令并在询问时指定参数
另一方面,您可以使用与网站 1 相同的代理。