Heim > Backend-Entwicklung > Golang > Warum zeigt meine Golang-App auf Heroku nach einem erfolgreichen Build einen „Anwendungsfehler' an?

Warum zeigt meine Golang-App auf Heroku nach einem erfolgreichen Build einen „Anwendungsfehler' an?

DDD
Freigeben: 2024-12-14 07:02:08
Original
797 Leute haben es durchsucht

Why Does My Golang App on Heroku Show an

Bereitstellung einer Golang-App auf Heroku: Build-Erfolg, aber Anwendungsfehler

Bei der Bereitstellung einer Golang-Anwendung auf Heroku mit Go-Abhängigkeitsunterstützung müssen Sie Beim Versuch, auf Endpunkte zuzugreifen, kann ein „Anwendungsfehler“ auftreten. Dieses Problem tritt auf, wenn der Webserver nicht ordnungsgemäß an den entsprechenden Port auf Heroku gebunden ist.

Ihre Anwendungsprotokollmeldungen weisen auf den folgenden Fehler hin:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Nach dem Login kopieren

Ursache:

Das Problem wird durch den Versuch verursacht, den Server an einem fest codierten Port (9000) zu starten, anstatt ihn an den von Heroku angegebenen Port zu binden Umgebungsvariable $PORT.

Lösung:

Um dieses Problem zu beheben, starten Sie den Server mithilfe der Umgebungsvariablen $PORT am richtigen Port. Ersetzen Sie Ihren vorhandenen Code:

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

Mit Folgendem:

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

Diese Änderung stellt sicher, dass der Server ordnungsgemäß an den von Heroku angegebenen Port bindet, wodurch das Problem „Anwendungsfehler“ behoben wird.

Das obige ist der detaillierte Inhalt vonWarum zeigt meine Golang-App auf Heroku nach einem erfolgreichen Build einen „Anwendungsfehler' an?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage