如何解决将 GitHub 操作部署到 Azure Web 应用程序时出错 1 - WEBSITE_RUN_FROM_PACKAGE 在应用服务应用程序设置中是必需的因为现在是 zip 部署2 - 存储库包含多个项目需要为每个构建和发布命令指定项目文件
刚刚转换为新的 GitHub 应用服务操作构建和部署管道并收到以下错误:
Run azure/webapps-deploy@v2
with:
app-name: ***
slot-name: ***
publish-profile: ***
package: .
Package deployment using ZIP Deploy initiated.
Fetching changes.
Cleaning up temp folders from prevIoUs zip deployments and extracting pushed zip file D:\local\Temp\zipdeploy\gtfnmdqs.zip (19.64 MB) to D:\local\Temp\zipdeploy\extracted
Error: Failed to deploy web package to App Service.
Error: Deployment Failed with Error: Package deployment using ZIP Deploy Failed. Refer logs for more details.
App Service Application URL: https://***.azurewebsites.net
除了部署失败之外,日志中没有任何指示错误的内容。没有对存储库进行任何更改(新 yaml 除外),并且不确定错误是否是因为未检测到代码更改。如果是这样,为什么要抛出错误而不是警告?
yml 是 Azure 生成的标准:
on:
workflow_dispatch:
branches: [main]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Set up .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
include-prerelease: true
- name: Build with dotnet
run: dotnet build --configuration Release
- name: dotnet publish
run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v2
with:
name: .net-app
path: ${{env.DOTNET_ROOT}}/myapp
deploy:
runs-on: windows-latest
needs: build
environment:
name: '***'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v2
with:
name: .net-app
- name: Deploy to Azure Web App
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: '***'
slot-name: '***'
publish-profile: ${{ secrets.AzureAppService_PublishProfile_*** }}
package: .
旁注:我有一个运行良好的新应用服务,这是一个最初使用前 CI/DI 的现有应用服务。为 CI/DI 断开连接并生成新连接。不确定这是否重要。
Azure 日志详细信息:
部署似乎与服务计划的 cpu 挂钩,这解释了为什么每个人都增加层以解决:
尝试关闭所有应用服务并在没有其他任何运行的情况下进行部署,但没有效果。
还尝试将发布配置文件导入 Visual Studio,但也失败了...
即使尝试删除退出的应用服务并创建新的应用服务,但仍然无法部署。
Package deployment using ZIP Deploy initiated.
Updating submodules.
Preparing deployment for commit id '10c1139fcb'.
Generating deployment script.
Using cached version of deployment script (command: 'azure -y --no-dot-deployment -r "D:\local\Temp\zipdeploy\extracted" -o "D:\home\site\deployments\tools" --basic --sitePath "D:\local\Temp\zipdeploy\extracted\Source\Web\cdcavell\cdcavell.csproj"').
Running deployment command...
Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling Basic Web Site deployment.
Creating app_offline.htm
Error: Could not find a part of the path 'D:\local\Temp\zipdeploy\extracted\Source\Web\cdcavell\cdcavell.csproj'.
KuduSync.NET from: 'D:\local\Temp\zipdeploy\extracted\Source\Web\cdcavell\cdcavell.csproj' to: 'D:\home\site\wwwroot'
Failed exitCode=1,command="kudusync" -v 50 -f "D:\local\Temp\zipdeploy\extracted\Source\Web\cdcavell\cdcavell.csproj" -t "D:\home\site\wwwroot" -n "D:\home\site\deployments\10c1139fcb004b0fbd7eb608cceb0855\manifest" -p "D:\Program Files (x86)\SiteExtensions\Kudu\94.30524.5227\bin\Scripts\firstDeploymentManifest" -i ".git;.hg;.deployment;deploy.cmd"
An error has occurred during web site deployment.
Error: Could not find a part of the path 'D:\local\Temp\zipdeploy\extracted\Source\Web\cdcavell\cdcavell.csproj'.\r\nD:\Program Files (x86)\SiteExtensions\Kudu\94.30524.5227\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"
Error: Failed to deploy web package to App Service.
Error: Deployment Failed with Error: Package deployment using ZIP Deploy Failed. Refer logs for more details.
App Service Application URL: https://cdcavell.azurewebsites.net
解决方法
终于可以部署了。必须将发布配置文件导入 Visual Studio 并使用 zip 部署进行发布。
cdcavell -> D:\Projects\GitHub\cdcavell.name\Source\Web\cdcavell\obj\Release\net5.0\PubTmp\Out\
Publishing D:\Projects\GitHub\cdcavell.name\Source\Web\cdcavell\obj\Release\net5.0\PubTmp\cdcavell-20210710130209924.zip to https://cdcavell.scm.azurewebsites.net/api/zipdeploy...
Zip Deployment succeeded.
Web App was published successfully https://cdcavell.azurewebsites.net/
========== Build: 6 succeeded,0 failed,0 up-to-date,0 skipped ==========
========== Publish: 1 succeeded,0 skipped ==========
Installation of Web App Site extension Microsoft.AspNetCore.AzureAppServices.SiteExtension is in progress...
Successfully installed Web App extension Microsoft.AspNetCore.AzureAppServices.SiteExtension
Restarting the Web App...
Successfully restarted Web App.
看来这会导致安装 Web App Site 扩展。之后,我能够使用 Azure 应用服务中的同步成功执行手动部署。
更新:新问题是现在在应用服务中自动设置以下内容,导致站点只能从 zip 文件中读取。导致我的网站出现各种访问问题。
{
"name": "WEBSITE_RUN_FROM_PACKAGE","value": "1","slotSetting": false
},
显然导致 /Home/Index 无法再访问...
删除此设置会同时禁用我的应用服务。
最终解决方案:
1 - WEBSITE_RUN_FROM_PACKAGE
在应用服务应用程序设置中是必需的。因为现在是 zip 部署。
{
"name": "WEBSITE_RUN_FROM_PACKAGE","slotSetting": false
}
下一点是我的错,我知道答案只是当时太沮丧而没有看到它。
2 - 存储库包含多个项目。需要为每个构建和发布命令指定项目文件。
- name: Build with dotnet
run: dotnet build D:\a\cdcavell.name\cdcavell.name\Source\Web\cdcavell\cdcavell.csproj --configuration Release
- name: dotnet publish
run: dotnet publish D:\a\cdcavell.name\cdcavell.name\Source\Web\cdcavell\cdcavell.csproj -c Release -o ${{env.DOTNET_ROOT}}/myapp
我不认为应用程序设置中的 PROJECT
真的意味着什么,但不确定所以暂时离开。
站点仍然存在负载问题,但它从来没有为 zip 部署而设计,因此现在必须解决这个问题。无论如何,我提到的两点是导致我在新的 GitHub Action 部署中出现问题的原因。
我确实希望这能让其他人免于我刚刚经历的挫折......
加载问题是我的想法:Failed to open siteversion.txt. ZipFS setup failed. Error: 0x80070003
。丢失了我的站点地图,现在需要重新开发该过程。同样,这是一个 zip 部署,因此不能再依赖于利用文件写入来做简单的事情。
zip 部署的最大问题是我也无法生成我的签名凭据。这对我来说是一种表演障碍和巨大的安全问题。但是,嘿,我猜 zip 部署是最新的热潮。
// not recommended for production - you need to store your key material somewhere secure
// builder.AddDeveloperSigningCredential();
RsaSecurityKey key = rsa.GetKey();
builder.AddValidationKey(key);
builder.AddSigningCredential(key,SecurityAlgorithms.RsaSha512);
这个我什至没有答案......
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。