Azure 应用服务泊坞窗错误:容器...未响应端口:8080 上的 HTTP ping

问题描述 投票:0回答:2
我已经使用 Linux 服务器设置了 Azure 应用服务,并在其上部署了 dotnet core 应用程序。导航到应用程序 URL (.azurewebsites.net) 时,我收到以下错误:

:(应用程序错误

控制台输出为:

加载资源失败:服务器响应状态为503(服务不可用)

打开监控Log流时,得到的是这样的(

我已经替换了名称和ID,我不知道敏感数据是什么):

2023-05-08T21:11:07.396Z 错误 - 容器

0 站点已退出,站点启动失败 2023-05-08T21:11:07.408Z 错误 - 容器 0 未响应 HTTP ping 端口:8080,站点启动失败。请参阅容器日志进行调试。 2023-05-08T21:11:07.415Z 信息 - 停止网站,因为它 启动期间失败。 2023-05-08T21:19:11.674Z 信息 - 开始 站点 2023-05-08T21:19:11.683Z 信息的容器 - docker run -d --expose=8080 --name 0 -e PORT=8080 -e WEBSITE_SITE_NAME= -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=.azurewebsites.net -e 网站_实例_ID= -e HTTP_LOGGING_ENABLED=1 -e ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=Microsoft.ApplicationInsights.StartupBootstrapper -e DOTNET_STARTUP_HOOKS=/agents/core/StartupHook/Microsoft.ApplicationInsights.StartupHook.dll -e WEBSITE_USE_DIAGNOSTIC_SERVER=True appsvc/dotnetcore:6.0_20230323.1.tuxprod

我尝试将 WEBSITES_PORT 添加到“应用程序服务”>“配置”>“应用程序设置”,仅添加值为“8080”的端口设置,但没有任何变化。

有什么想法可以从这里开始吗,这对我来说都是新的?

azure docker azure-web-app-service
2个回答
2
投票
当站点无法响应端口 8080 上的 HTTP ping 时,就会出现此错误。这可能是因为配置设置不正确或容器映像存在问题。

检查以下步骤是否有助于解决问题:

    在 Docker 文件中将端口公开为 8080,如下所示:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 8080 .....

  1. 在“应用服务”->“部署中心”->“日志”选项卡中检查容器日志,找出导致容器失败的错误或问题。

  2. 检查容器镜像是否配置正确,并且与您使用的.NET Core版本兼容。

  3. 检查您的应用服务的配置设置。将 WEBSITES_PORT 或 PORT 设置配置为应用程序正在侦听的同一端口后重新启动应用程序服务,这有助于解决容器问题。

  4. 在应用服务中启用应用程序日志记录(Linux/容器)。 应用程序服务 -> 应用程序服务日志 -> 在文件系统中选择应用程序日志记录。

enter image description here

    将您的应用程序部署到新的应用程序服务实例,以查看问题是与应用程序有关还是与应用程序服务有关。

我创建了一个 dotnet core Web 应用程序。对应用程序进行 Docker 化并将其部署到 Azure 应用服务。

Dockerfile:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src COPY ["WebApplication12.csproj", "."] RUN dotnet restore "./WebApplication12.csproj" COPY . . WORKDIR "/src/." RUN dotnet build "WebApplication12.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "WebApplication12.csproj" -c Release -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "WebApplication12.dll"]

构建 Docker 镜像: enter image description here

将图像推送到存储库: enter image description here

传送门: enter image description here

回复: enter image description here


0
投票
如果您正在学习将 ASP.NET Core 和 Azure SQL 数据库应用部署到 Azure 应用服务教程,则可以在本教程开头提供的示例存储库的 .devcontainer 目录中找到 Dockerfile。在那里您可以将端口公开给 8080。

© www.soinside.com 2019 - 2024. All rights reserved.