按照这个教程,我在本地环境中一切正常。但是当我将应用部署到Heroku并在浏览器上访问时,出现了503错误和以下信息:
我明白出现了什么错误,但是一个如此简单的教程应用怎么会导致启动超时(R10)呢?
我该如何更好地调试并修复应用程序以使其运行?
应用程序错误 应用程序发生错误,无法为您提供页面服务。请稍后再试。 如果您是应用程序所有者,请检查日志以获取详细信息。
日志显示:
2015-09-08T16:31:53.976824+00:00 heroku[web.1]: State changed from crashed to starting
2015-09-08T16:31:56.174376+00:00 heroku[web.1]: Starting process with command `mywebsite`
2015-09-08T16:31:59.312461+00:00 app[web.1]: Listening on port: 39461
2015-09-08T16:32:56.471550+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2015-09-08T16:32:56.471550+00:00 heroku[web.1]: Stopping process with SIGKILL
2015-09-08T16:32:57.390752+00:00 heroku[web.1]: Process exited with status 137
2015-09-08T16:32:57.404208+00:00 heroku[web.1]: State changed from starting to crashed
2015-09-08T16:32:57.645135+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=boiling-eyrie-6897.herokuapp.com request_id=ec26... fwd="xx.xxx.xxx.xxx" dyno= connect= service= status=503 bytes=
2015-09-08T16:32:58.233774+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=boiling-eyrie-6897.herokuapp.com request_id=ef40...fwd="xx.xxx.xxx.xxx" dyno= connect= service= status=503 bytes=
我明白出现了什么错误,但是一个如此简单的教程应用怎么会导致启动超时(R10)呢?
我该如何更好地调试并修复应用程序以使其运行?
localhost
上进行侦听,则进程监视器无法检测到绑定的端口。您需要在所有可用的网络连接上进行绑定。请参见https://github.com/heroku/go-getting-started/blob/master/cmd/go-getting-started/main.go#L27 - Damien MATHIEUhttp.ListenAndServe("127.0.0.1:"+port, nil)
,而应该是http.ListenAndServe(":"+port, nil)
。请将此作为答案提交。 - sargas