You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform部署Azure .NET Web应用遇加载等待问题求助

问题描述

尝试通过Terraform将.NET Web应用部署至Azure平台,关联的GitHub公共仓库地址为https://github.com/iboncas/dotnetweb.git,使用的main.tf配置如下:

provider "azurerm"{
    features{}
}

variable "github_auth" {
  type        = string
  description = "Token for authorization"
  default = "xxx"
}

resource "azurerm_resource_group" "example" {
  name     = "web-rg"
  location = "westeurope"
}

resource "azurerm_service_plan" "appserviceplan" {
  name                = "appservice-iboncas"
  resource_group_name = azurerm_resource_group.example.name
  location            = "westeurope"
  os_type             = "Linux"
  sku_name            = "B1"
}

resource "azurerm_linux_web_app" "linux-app" {
  name                = "linux-web-iboncas"
  resource_group_name = azurerm_resource_group.example.name
  location            = "westeurope"
  service_plan_id     = azurerm_service_plan.appserviceplan.id
  https_only = true
  site_config {
    application_stack {
      dotnet_version = "8.0"
    }
  }
}

resource "azurerm_app_service_source_control" "source_control" {
  app_id                 = azurerm_linux_web_app.linux-app.id
  repo_url               = "https://github.com/iboncas/dotnetweb.git"
  branch                 = "main"
  use_manual_integration = true
}

resource "azurerm_source_control_token" "source_token" {
  type         = "GitHub"
  token        = var.github_auth
  token_secret = var.github_auth
}

部署完成后,Web应用页面持续显示「Web应用正在运行,等待加载内容,最长可能需要5分钟」的提示,始终无法正常加载应用内容。

排查与解决步骤

1. 检查源代码部署状态

  • 登录Azure门户,进入目标Linux Web应用,在部署中心查看部署记录,确认代码是否成功拉取并构建:
    • 若提示权限问题:确认github_auth变量中的GitHub token拥有仓库读取权限(公共仓库理论上无需token,但手动集成模式可能需要验证,建议使用含repo权限的个人访问令牌)。
    • 若构建失败:检查仓库中是否存在标准.NET 8项目结构,比如是否包含Program.cs、.csproj文件,且项目目标框架配置为net8.0。

2. 修正部署模式配置

当前use_manual_integration = true仅拉取代码,不会自动触发构建部署。针对.NET应用,需调整配置:

  • 修改azurerm_app_service_source_control资源,启用自动集成让Azure处理代码拉取与构建:
resource "azurerm_app_service_source_control" "source_control" {
  app_id                 = azurerm_linux_web_app.linux-app.id
  repo_url               = "https://github.com/iboncas/dotnetweb.git"
  branch                 = "main"
  use_manual_integration = false
}
  • 若坚持使用手动集成,需在Azure门户部署中心手动点击「同步」按钮触发代码拉取与构建。

3. 验证运行时与启动配置

  • 确认azurerm_linux_web_app的site_config中.NET版本与仓库应用目标框架一致(当前配置为8.0,需确保项目TargetFramework为net8.0)。
  • 若项目需要自定义启动命令,在site_config中添加对应配置:
site_config {
  application_stack {
    dotnet_version = "8.0"
  }
  startup_command = "dotnet YourAppName.dll"
}

(替换YourAppName.dll为项目实际生成的程序集名称)

4. 查看应用日志定位错误

  • 进入Azure门户Web应用的日志流,或通过https://<你的应用名称>.scm.azurewebsites.net访问Kudu工具,在Debug console > LogFiles下查看stdout/stderr日志,排查应用启动失败的具体原因(如端口绑定错误、依赖缺失等)。

5. 确认资源配置一致性

检查所有资源(资源组、服务计划、Web应用)的location均为westeurope,避免跨区域导致的部署延迟或连接问题。


内容的提问来源于stack exchange,提问作者Ibon Castro Llorente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 02:14:56