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

Azure中.NET 4.7项目部署异常:网站无法显示最新版本

问题:Azure部署后网站未显示最新.NET 4.7应用版本

我正在开发基于.NET 4.7框架的界面,通过Sourcetree推送代码至Azure并执行部署,使用的流水线YAML如下:

trigger:
- master

pool:
  vmImage: 'windows-2022'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  targetDirectory: '$(build.artifactstagingdirectory)\projectName'

steps:
- task: NuGetToolInstaller@0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=false /p:PackageLocation="$(targetDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish artifacts'
  inputs:
    PathtoPublish: '$(targetDirectory)'
    ArtifactName: 'PublishBuildArtifacts'
    preservePaths: false

部署后出现异常:网站始终展示2-3个版本之前的内容,但Azure上的工件和FTP服务器的数据均为最新状态。以下是排查和解决方向:


排查与解决步骤

1. 检查Azure Web App部署目标与槽位

  • 若使用部署槽位,确认生产槽位是否与 staging 槽位完成交换,或部署任务是否误指向非生产槽位。可在Azure门户的Web App > 部署槽位中查看活跃槽位内容。
  • 未使用槽位时,检查部署中心的目标是否正确指向生产环境。

2. 清除应用与客户端缓存

  • 在Azure门户重启Web App,强制加载最新文件,避免.NET应用进程锁定旧资源。
  • 检查Web.config是否启用了输出缓存,可临时禁用排查:
    <system.webServer>
      <caching enabled="false" />
    </system.webServer>
    
  • 对于静态资源(CSS/JS),确认是否添加版本戳(如style.css?v=20240520),避免客户端浏览器缓存旧文件。

3. 补全流水线部署环节

当前YAML仅完成了构建与工件发布,缺少将工件部署至Web App的核心步骤,需添加AzureRmWebAppDeployment任务:

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: '<你的Azure订阅名称>'
    appType: 'webApp'
    WebAppName: '<你的Web App名称>'
    packageForLinux: '$(targetDirectory)/**/*.zip'

同时检查部署任务日志,确认是否存在文件部署失败或跳过的情况。

4. 验证FTP部署的文件覆盖情况

  • 部分文件(如被进程锁定的DLL)可能未被覆盖,可通过Kudu控制台(Web App > 高级工具 > Kudu)进入site/wwwroot目录,核对文件修改时间是否与最新工件一致。
  • 手动删除旧文件后重新部署,确认是否解决问题。

5. 确认构建输出完整性

  • 下载Azure DevOps中的工件包,解压后检查是否包含最新代码的编译产物,确认VSBuild任务的PackageLocation参数是否正确打包了所有必要文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:47:21