Azure Web App部署成功但访问URL无法打开,如何诊断排查?
问题:ASP.NET Core应用部署Azure App Service成功但无法访问
上下文信息
- Web App URL:https://filesharing-webapp-gge6g3ayehg6fafc.eastus-01.azurewebsites.net
- App Service计划:Basic B1
- 部署状态:Azure门户部署日志显示成功
- Web App状态:门户显示"运行中"
- Kudu控制台:无法访问(对应SCM URL同样报错)
已排查内容
- 部署日志:无错误,显示成功
- App Service日志:无法流式传输,门户提示"无法打开与应用的连接"
- 访问限制:未设置IP或访问限制规则
- 环境变量:已配置与开发环境匹配的变量,本地Visual Studio按F5运行正常
- Kudu控制台:无法访问,推测存在应用或环境层面基础问题
当前使用的GitHub Actions构建配置
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy # More GitHub Actions for Azure: https://github.com/Azure/actions name: Build and deploy ASP.Net Core app to Azure Web App - filesharing-webapp on: push: branches: - main workflow_dispatch: jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Set up .NET Core uses: actions/setup-dotnet@v4 with: dotnet-version: '8.x' - name: Build with dotnet run: dotnet build --configuration Release - name: List contents of GITHUB_WORKSPACE run: dir $GITHUB_WORKSPACE # Use $GITHUB_WORKSPACE to explicitly tell the build agent where the csproj is located. - name: dotnet publish run: dotnet publish -c Release -o $GITHUB_WORKSPACE\myapp - name: List contents of GITHUB_WORKSPACE after publish run: dir $GITHUB_WORKSPACE - name: List contents of myapp directory after publish run: dir $GITHUB_WORKSPACE\myapp - name: Upload artifact for deployment job uses: actions/upload-artifact@v4 with: name: .net-app path: D:\myapp deploy: runs-on: windows-latest needs: build environment: name: 'Production' url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} permissions: id-token: write # This is required for requesting the JWT steps: - name: Download artifact from build job uses: actions/download-artifact@v4 with: name: .net-app path: D:\myapp - name: Login to Azure uses: azure/login@v2 with: client-id: azure id redact tenant-id: tenat id redact subscription-id: sub id redact - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@v3 with: app-name: 'filesharing-webapp' slot-name: 'Production' package: .
诊断步骤与建议
1. 修复GitHub Actions部署路径错误
从配置看,构建和部署阶段的文件路径存在明显问题:
- 构建阶段
dotnet publish将文件输出到$GITHUB_WORKSPACE\myapp,但上传artifact时指定的是D:\myapp,路径不匹配导致上传的是空目录或错误文件 - 部署阶段下载artifact到
D:\myapp,但部署命令package: .指向runner默认工作目录,而非下载的文件目录
修正方案:- 上传artifact时改为:
path: ${{ github.workspace }}/myapp - 部署阶段修改部署命令:
package: D:\myapp
- 上传artifact时改为:
2. 验证App Service启动命令
ASP.NET Core应用在Azure上需要匹配的启动命令:
- 进入Web App「配置」→「常规设置」,检查「启动命令」:
- 框架依赖型部署需设置为
dotnet <你的应用程序集名称>.dll(可通过本地发布目录确认.dll文件名) - 自包含部署无需额外命令,但需确保平台位数(32/64位)与发布配置一致
- 框架依赖型部署需设置为
3. 核对运行时配置
- 确认「配置」→「常规设置」中的.NET版本为8.x,与本地开发环境一致
- 检查平台设置(32位/64位)是否和本地发布配置匹配
4. 强制重启App Service
即使状态显示运行中,部署后的应用可能未正确加载:
- 在Azure门户点击Web App的「重启」按钮,等待完成后再次尝试访问
5. 提取离线诊断日志
若日志流无法连接,可开启离线日志记录:
- 进入「日志」→「应用日志记录」,选择文件系统或Blob存储开启日志,重启应用后查看存储中的日志文件
- 使用Azure CLI命令拉取日志:
az webapp log tail --name filesharing-webapp --resource-group <你的资源组名称>
6. 手动验证发布包
排除GitHub Actions的问题:
- 本地执行
dotnet publish -c Release,在发布目录运行dotnet <程序集>.dll,确认本地可正常访问 - 通过Azure门户「部署中心」→「高级工具」→「Zip部署」手动上传本地发布包,部署后测试访问
7. 检查区域服务状态
确认Azure East US区域是否存在服务中断,查看官方状态页面确认服务可用性
内容的提问来源于stack exchange,提问作者Lee
相关产品推荐
相关产品推荐

