Azure .net核心应用程序服务无法从Package运行

问题描述

我使用azure管道部署应用程序。
首先使用dotnet构建,然后发布,然后部署

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)\DQMIntegration\'
    ArtifactName: 'DQMIntegration'
    publishLocation: 'Container'

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'DQM-NonProd'
    appType: 'webApp'
    WebAppName: 'stg-DQMIntegration'
    deployToSlotOrASE: true
    ResourceGroupName: 'ESSP-N-1-QTYF-RG-2'
    SlotName: 'production'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/DQMIntegration/'

部署在Azure应用服务中设置WEBSITE_RUN_FROM_PACKAGE = 1。但是,该应用程序无法运行。

在两种情况下,应用程序都显示“正在Azure控制台中运行”。

我没有从软件包或其他软件包运行的具体要求,但我不明白为什么应用程序不以软件包形式运行,或者管道为何如此运行。在kudu控制台中,我看到该zip文件已在data / SitePackages中上传,并且有一个packagename.txt文件,其中包含最新上传的zip文件的名称。 我的应用程序服务在ASE中。这是一个c语言的API。

有什么想法吗?

解决方法

实际上,从程序包运行 ZIP Depoly 不同。

您正在做的是ZIP Deploy,您无需在应用程序设置中添加WEBSITE_RUN_FROM_PACKAGE。此环境变量将使wwwroot下的文件成为只读文件,而WEBSITE_RUN_FROM_PACKAGE="1"可让您从应用包 local 运行您的应用,因此将其值设置为'1'仅当您想从本地程序包运行应用程序时。

如果要从远程软件包运行,可以执行以下操作:WEBSITE_RUN_FROM_PACKAGE=url

由于设置了WEBSITE_RUN_FROM_PACKAGE应用程序设置,因此此命令不会将包内容提取到应用程序的D:\ home \ site \ wwwroot目录中。而是将ZIP文件原样上传到D:\ home \ data \ SitePackages,并在同一目录中创建packagename.txt,其中包含要在运行时加载的ZIP包的名称。如果您以其他方式(例如FTP)上传ZIP包,则需要手动创建D:\ home \ data \ SitePackages目录和packagename.txt文件。

是的,如果kudu中的文件正确,它应该运行。由于您未使用从程序包运行,因此WEBSITE_RUN_FROM_PACKAGE="1"找不到所需的文件,这就是问题的原因。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...