从管道部署时出现服务不可用错误Azure DevOps

p4rjhz4m  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(143)

我的Asp.net核心MVC应用程序使用一个管道正确部署到具有部署槽的Azure应用程序服务,但当我尝试在浏览器中访问该应用程序时,我收到一个"service unavailable error" message"
当我停止并启动应用程序服务时,错误消失了,但奇怪的是,从Visual Studio部署完美地工作,而无需重新启动应用程序服务。
我已经尝试了应用服务停止和启动从管道,但它也不工作,maunal重新启动部署从管道需要。
我的CICD yaml pipeline是多级的,它在部署槽上部署应用程序。
我被困在里面了,谁能帮帮我。

xdyibdwo

xdyibdwo1#

我使用下面的yaml脚本成功地在Azure应用服务中部署了Asp.net Web应用:

我正在使用标准应用服务计划部署Web应用。

trigger:
  branches:
    include:
      - main

jobs:
- job: Build
  displayName: 'Build and Publish'
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - task: UseDotNet@2
    displayName: 'Install .NET Core SDK'
    inputs:
      version: '6.x'

  - task: DotNetCoreCLI@2
    displayName: 'Restore Dependencies'
    inputs:
      command: 'restore'
      projects: '**/*.csproj'

  - task: DotNetCoreCLI@2
    displayName: 'Build Project'
    inputs:
      command: 'build'
      projects: '**/*.csproj'
      arguments: '--configuration Release'

  - task: DotNetCoreCLI@2
    displayName: 'Publish Project'
    inputs:
      command: 'publish'
      projects: '**/*.csproj'
      publishWebProjects: true
      arguments: '--configuration Release --output $(Build.ArtifactStagingDirectory)'
      zipAfterPublish: true

  - task: PublishPipelineArtifact@1
    displayName: 'Publish Artifact'
    inputs:
      targetPath: '$(Build.ArtifactStagingDirectory)'
      artifactName: 'publishedApp'
      publishLocation: 'pipeline'

- job: Deploy
  displayName: 'Deploy to Azure Web App'
  dependsOn: Build
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - download: current
    artifact: 'publishedApp'

  - task: UseDotNet@2
    displayName: 'Install .NET Core SDK'
    inputs:
      version: '6.x'

  - task: AzureWebApp@1
    displayName: 'Azure Web App Deploy'
    inputs:
      azureSubscription: 'subscription-id'
      appType: 'webApp'
      appName: 'valleywebapp09'
      package: '$(Agent.BuildDirectory)/**/*.zip'
      deploymentMethod: 'auto'

输出:-

检查日志:若要查看是否存在可能是问题根源的任何问题或警告,请检查您的应用服务的日志。通过从Azure门户中应用服务的“监控”部分选择“日志流”,您可以检索日志。

检查管道配置:您可以检查YAML管道配置,以确定是否存在任何可能阻止应用在部署插槽上正确启动的管道问题。
验证应用程序的初始化代码:如果程序没有正常启动,您可以检查启动代码,看看是否有任何问题。
检查设置是否正确同步,同时交换插槽如下:-

qvsjd97n

qvsjd97n2#

最后,我得到了解决方案后,挖掘和无用的会议与微软支持团队天。

解决方案:我发现我在管道任务中将deploymentMethod设置为“auto”,这使得我的应用程序在Azure AppService上部署后只读,并将应用程序大小限制为29.9 MB,而实际大小为156 MB。因此,我将deploymentMethod更改为'zipDeploy',它将我的应用程序的每个文件和文件夹部署在webapp Azure上,实际应用程序大小为156 MB,解决了这个问题。

我分享这个解决方案,所以它可能会保存别人的几个小时。

相关问题