Rumah >pembangunan bahagian belakang >Golang >Mengapa Apl GoLang Heroku Saya Mengembalikan 'Ralat Aplikasi' Walaupun Binaan Berjaya?

Mengapa Apl GoLang Heroku Saya Mengembalikan 'Ralat Aplikasi' Walaupun Binaan Berjaya?

Susan Sarandon
Susan Sarandonasal
2024-12-05 10:00:20931semak imbas

Why Does My GoLang Heroku App Return an

Menggunakan Apl GoLang pada Heroku: Menyelesaikan masalah "Ralat Aplikasi"

Soalan:

Menggunakan aplikasi GoLang pada Heroku menggunakan sokongan GoDep, binaan berjaya tetapi mengakses titik akhir mengembalikan "Application Ralat." Apl ini berjalan pada port 9000 pada localhost, tetapi grace.Serve nampaknya mendengar pada port yang berbeza.

Heroku Log Output:

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

Permohonan Kod:

err := grace.Serve(":9000", context.ClearHandler(http.DefaultServeMux))

Jawapan:

Isunya ialah aplikasi mengikat pelayan webnya secara jelas kepada port 9000, yang bercanggah dengan port yang diperuntukkan oleh Heroku. Heroku memperuntukkan port dinamik melalui pembolehubah persekitaran PORT.

Untuk menyelesaikan masalah ini, aplikasi harus memperuntukkan port secara dinamik berdasarkan pembolehubah persekitaran PORT dan bukannya pengekodan keras port 9000.

Disemak Kod Permohonan:

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

Atas ialah kandungan terperinci Mengapa Apl GoLang Heroku Saya Mengembalikan 'Ralat Aplikasi' Walaupun Binaan Berjaya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn