我使用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。
有什么想法吗?
答案 0 :(得分:0)
实际上,从程序包运行与 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"
找不到所需的文件,这就是问题的原因。