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

Azure Container App部署Blazor .NET8应用遇错误111求助

部署Blazor Web .NET8到Azure Container App出现upstream连接错误的排查方案

问题背景

已将Blazor Web .NET8应用打包至Azure容器注册表,成功部署Azure Container App修订版本,启动日志无异常,但访问应用URL时出现错误:

upstream connect error or disconnect/reset before headers. retried and the latest reset reason: remote connection failure, transport failure reason: delayed connect error: 111

使用的Dockerfile配置如下:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src

COPY ["src/Project.Title/Project.Title.csproj", "src/Project.Title/"]
RUN dotnet restore "./src/Project.Title/./Project.Title.csproj"
COPY . .
WORKDIR "/src/src/Project.Title"

RUN dotnet build "./Project.Title.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./Project.Title.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Project.Title.dll"]

排查方向与解决步骤

错误delayed connect error: 111本质是连接被拒绝,说明Azure Container App的入口流量无法转发到容器内的应用进程,按以下步骤逐一排查:

1. 确认应用监听地址配置

Blazor Web App默认监听localhost,但容器环境下必须监听0.0.0.0才能允许外部访问:

  • 打开Program.cs,确保启动代码指定正确的监听地址:
    var app = builder.Build();
    // 必须监听0.0.0.0,允许容器外部访问
    app.Run("http://0.0.0.0:80");
    
  • 或者通过环境变量配置,在Azure Container App的环境变量中添加:
    ASPNETCORE_URLS=http://0.0.0.0:80

2. 验证Azure Container App入口设置

  • 确认入口的目标端口设置为80(与Dockerfile暴露端口、应用监听端口一致)
  • 检查入口协议为HTTP(除非你为应用配置了HTTPS证书并监听443端口)
  • 确认路由规则的路径前缀与应用路由匹配,避免因路径不匹配导致流量无法到达应用

3. 检查容器内进程监听状态

通过Azure Portal进入容器应用的终端,执行命令验证应用是否在端口80监听:

netstat -tulpn | grep dotnet

如果输出中没有0.0.0.0:80的记录,说明应用未正确启动或监听地址配置错误。

4. 排查网络与安全限制

  • 若使用自定义虚拟网络,确认VNet的安全组或网络规则未阻止端口80的入站流量
  • 检查容器应用的网络配置,确保启用了外部访问权限(入口类型设置为"外部")

5. 验证Dockerfile的启动逻辑

你的Dockerfile中EXPOSE 80仅为端口声明,不会实际打开端口,关键是ENTRYPOINT启动的dotnet命令是否正确加载应用。确认Project.Title.dll是正确的入口程序集,发布过程无错误。


内容的提问来源于stack exchange,提问作者Yan D

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:40:18