Привязка к Heroku Dynami c $ PORT и ошибка? - PullRequest
1 голос
/ 10 февраля 2020

Я получаю эту ошибку из журналов heroku:

Ошибка R10 (Тайм-аут загрузки) -> Веб-процессу не удалось привязаться к $ PORT в течение 60 секунд после запуска

У меня есть приложение ASP. NET Core 2.1, которое я пытаюсь развернуть в Heroku. Это то, что я делаю при запуске:

if (!int.TryParse(Environment.GetEnvironmentVariable("PORT"), out var port))
{ port = 5000; }

return WebHost
    .CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .UseKestrel(options =>
    {
        options.Listen(IPAddress.Loopback, port);
    });

Это мой Dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .

ENV ASPNETCORE_ENVIRONMENT=Production

CMD dotnet MyApp.dll

Я вижу, что приложение запускается нормально, я даже вижу, что оно успешно связывается с чем-то вроде http://127.0.0.1:48684, что означает, что он получает $PORT, но во время запроса я получаю вышеуказанную ошибку. Я не могу использовать EXPOSE $PORT, потому что он дается во время выполнения.

Я боролся с этим уже некоторое время. Любая помощь приветствуется.

1 Ответ

2 голосов
/ 10 февраля 2020

Бывает, что после нескольких минут публикации этого вопроса я нашел этот ответ , который решает мою проблему. Я изменил параметры прослушивания на options.Listen(IPAddress.Any, port);.

if (!int.TryParse(Environment.GetEnvironmentVariable("PORT"), out var port))
{ port = 5000; }

return WebHost
    .CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .UseKestrel(options =>
    {
        options.Listen(IPAddress.Any, port);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...