Heim > Backend-Entwicklung > Golang > Warum gibt meine GoLang Heroku-App trotz erfolgreicher Erstellung einen „Anwendungsfehler' zurück?

Warum gibt meine GoLang Heroku-App trotz erfolgreicher Erstellung einen „Anwendungsfehler' zurück?

Susan Sarandon
Freigeben: 2024-12-05 10:00:20
Original
936 Leute haben es durchsucht

Why Does My GoLang Heroku App Return an

Bereitstellen einer GoLang-App auf Heroku: Fehlerbehebung bei „Anwendungsfehler“

Frage:

Bereitstellen einer GoLang-App auf Heroku Mit der GoDep-Unterstützung ist der Build erfolgreich, aber beim Zugriff auf den Endpunkt wird ein „Anwendungsfehler“ zurückgegeben. Die App läuft auf Port 9000 auf localhost, aber Grace.Serve scheint auf einem anderen Port zu lauschen.

Heroku-Protokollausgabe:

2019-07-08T05:03:48.131507+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Nach dem Login kopieren

Anwendung Code:

err := grace.Serve(":9000", context.ClearHandler(http.DefaultServeMux))
Nach dem Login kopieren

Antwort:

Das Problem besteht darin, dass die Anwendung ihren Webserver explizit an Port 9000 bindet, was zu einem Konflikt mit dem von Herokus zugewiesenen Port führt. Heroku weist einen dynamischen Port über die Umgebungsvariable PORT zu.

Um dieses Problem zu beheben, sollte die Anwendung den Port dynamisch basierend auf der Umgebungsvariablen PORT zuweisen, anstatt Port 9000 fest zu codieren.

Überarbeitet Anwendungscode:

port := os.Getenv("PORT")
if port == "" {
    port = "9000" // Default port if not specified
}
err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum gibt meine GoLang Heroku-App trotz erfolgreicher Erstellung einen „Anwendungsfehler' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage