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

在Azure DevOps单仓库中部署REST API与SOAP服务的方法咨询

分项目构建与部署Azure Web App配置方案

一、修改构建管道(YAML)

将原有的单步构建拆分为针对两个项目的独立构建,分别生成各自的部署包并发布为不同的管道工件:

trigger:
- develop

pool:
  vmImage: 'windows-latest'

variables:
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  # 定义两个项目的路径变量,方便后续维护
  apiProject: '**/API.csproj'
  soapProject: '**/SOAP.csproj'

steps:
# 安装NuGet工具
- task: NuGetToolInstaller@1

# 还原整个解决方案的NuGet依赖包
- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'

# 构建REST API项目并生成独立部署包
- task: VSBuild@1
  inputs:
    solution: '$(apiProject)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\API\API.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

# 构建SOAP服务项目并生成独立部署包
- task: VSBuild@1
  inputs:
    solution: '$(soapProject)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\SOAP\SOAP.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

# 运行解决方案单元测试
- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

# 发布REST API的管道工件
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(build.artifactStagingDirectory)\API'
    artifact: 'API-Artifact'
    publishLocation: 'Container'

# 发布SOAP服务的管道工件
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(build.artifactStagingDirectory)\SOAP'
    artifact: 'SOAP-Artifact'
    publishLocation: 'Container'

关键调整说明:

  • 新增项目路径变量,简化后续配置修改
  • 拆分VSBuild任务,为两个项目指定独立输出目录,避免部署包覆盖
  • 用两个PublishPipelineArtifact任务分别发布工件,确保两个项目的部署包独立存储

二、配置发布管道

  1. 创建新的发布管道,选择空作业模板
  2. 添加两个部署阶段(支持并行或串行执行),分别命名为Deploy REST API和Deploy SOAP Service

单个阶段的任务配置示例:

阶段1:部署REST API到对应Web App

  • 添加下载管道工件任务:
    • 工件名称选择API-Artifact
    • 下载路径设置为$(System.ArtifactsDirectory)/API
  • 添加Azure Web App任务:
    • 选择目标Azure订阅和对应的Web App名称
    • 包或文件夹路径填写$(System.ArtifactsDirectory)/API/API.zip

阶段2:部署SOAP服务到对应Web App

  • 添加下载管道工件任务:
    • 工件名称选择SOAP-Artifact
    • 下载路径设置为$(System.ArtifactsDirectory)/SOAP
  • 添加Azure Web App任务:
    • 选择目标Azure订阅和对应的Web App名称
    • 包或文件夹路径填写$(System.ArtifactsDirectory)/SOAP/SOAP.zip

若需要串行执行部署,可在阶段设置中取消并行选项,调整执行顺序即可。

内容的提问来源于stack exchange,提问作者Roelant M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:25:57