【问题标题】:Azure - Container didn't respond to HTTP pings on port: , failing site startAzure - 容器没有响应端口上的 HTTP ping: ,站点启动失败
【发布时间】:2021-08-04 14:17:30
【问题描述】:

首先,我知道有一些类似的问题,我已经尝试了提供的答案中的建议,但没有帮助。

我有一个 ASP.NET Core Web 应用程序作为 Linux 容器运行。该应用程序在本地构建并运行良好。 部署到 Azure 时,应用无法启动,我可以看到以下错误:

  • 站点 mytestapp 的容器 mytestapp_0_560a15e8 未在预期时间限制内启动。经过的时间 = 230.4559912 秒
  • 容器 mytestapp_0_560a15e8 没有响应端口:8600 上的 HTTP ping,站点启动失败。查看容器日志以进行调试。
  • 停止站点 mytestapp,因为它在启动期间失败。 -错误 - 站点 mytestapp 的容器 mytestapp_0_74c5b4f4 未在预期时间限制内启动。 经过的时间 = 1800.0389751

(请注意,我尝试将 WEBSITES_CONTAINER_START_TIME_LIMIT 增加到最大值(在阅读 this 之后),并且在阅读 this 后,我确实将 WEBSITES_PORT 设置设置为使用 8600 而不是默认的 80和this)

我的 dockerfile 暴露了 8600 端口,如下所示:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine
ARG port
WORKDIR /app
EXPOSE ${port:-8600}

它似乎运行正常

  • docker run -d -p 8266:8600 --name mytestapp_0_560a15e8 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITES_PORT=8600 -e WEBSITE_SITE_NAME=mytestapp -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=mytestapp.azurewebsites.net -e WEBSITE_INSTANCE_ID=cb8d91c9d2a29a2894b5445bbfe9d306e91eb996b4b7cdada5ff30dc3f2bfdda -e HTTP_LOGGING_ENABLED.-cr.-cr/1 myapp-add:1

我尝试的另一件事是,当我在 dockerfile 中公开端口 80(并在 Azure 中禁用 WEBSITES_PORT 设置)时,应用程序运行正常。

我对 8600 端口的暴露做错了什么,还是只是我必须忍受的限制?

【问题讨论】:

  • 您是否尝试使用端口 8600 访问您的容器?点赞 website.com:8600
  • @CSharpRocks 是的,有端口和没有端口

标签: azure docker asp.net-core continuous-integration


【解决方案1】:

应用服务仅提供端口 80 上的流量。WEBSITES_PORT 设置允许您将端口 80 上的传入流量映射到您的容器正在侦听的端口。因此,无法使用 8600 端口直接访问您的容器。

【讨论】:

  • 对,但我尝试的第一件事是在没有指定端口的情况下到达它......但仍然没有工作。根据 AppService 的日志,可能是因为应用程序甚至没有启动。但是为什么不启动呢?我看到WEBSITES_PORT 设置中的更改会影响日志中的消息(例如...HTTP pings on port: 8600......HTTP pings on port: 80...
【解决方案2】:

尝试将PORT 的应用设置设置为8600 以及WEBSITES_PORT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    相关资源
    最近更新 更多