Heroku:Errno :: ECONNREFUSED(连接被拒绝 - 连接(2)):

时间:2012-07-12 06:25:26

标签: ruby-on-rails heroku

我能够预先编译资产以推送到Enki博客的Heroku,我成功地迁移了数据库。但是当我试图运行heroku open时,我在Heroku上获得了错误消息页面(该应用程序在本地运行)。然后我跑了heroku logs并看到了这个错误

Errno::ECONNREFUSED (Connection refused - connect(2)):

有谁可以解释问题可能是什么?

Processing by HomesController#index as HTML
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered homes/index.html.erb within layouts/application (2.1ms)
2012-07-12T06:14:38+00:00 app[web.1]: Completed 500 Internal Server Error in 7ms
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_request.text.erb (0.2ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.1ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_session.text.erb (0.3ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.0ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_environment.text.erb (13.9ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.0ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_backtrace.text.erb (0.1ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.1ms)
2012-07-12T06:14:38+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/exception_notification-2.5.2/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb (18.4ms)
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:540:in `initialize'
2012-07-12T06:14:41+00:00 app[web.1]: 
2012-07-12T06:14:41+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - connect(2)):
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:540:in `open'
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:540:in `tcp_socket'
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:549:in `block in do_start'
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:519:in `start'
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/message.rb:2034:in `do_delivery'
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/timeout.rb:99:in `timeout'
2012-07-12T06:14:41+00:00 app[web.1]:   vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:549:in `do_start'

更新

它试图发送电子邮件,因为它告诉我另一个错误。关闭电子邮件后,它给了我这个错误消息。我找不到未定义的方法/ Nil Class将是它的引用。

Started GET "/" for 24.84.41.17 at 2012-07-12 17:44:12 +0000
2012-07-12T17:44:12+00:00 app[web.1]: Processing by HomesController#index as HTML
2012-07-12T17:44:12+00:00 app[web.1]:   Rendered homes/index.html.erb within layouts/application (1.2ms)
2012-07-12T17:44:12+00:00 app[web.1]: Completed 500 Internal Server Error in 99ms
2012-07-12T17:44:12+00:00 app[web.1]: 
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/fields/common/common_address.rb:20:in `encode_if_needed'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/field.rb:169:in `new_field'
2012-07-12T17:44:12+00:00 app[web.1]: NoMethodError (undefined method `ascii_only?' for nil:NilClass):
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/encodings.rb:181:in `address_encode'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/field.rb:169:in `new'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/field.rb:156:in `create_field'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/encodings.rb:189:in `encode_non_usascii'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/encodings.rb:184:in `address_encode'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/encodings.rb:181:in `block in address_encode'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/encodings.rb:181:in `map'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/fields/to_field.rb:42:in `initialize'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/fields/common/common_address.rb:9:in `parse'
2012-07-12T17:44:12+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/field.rb:87:in `initialize'

2 个答案:

答案 0 :(得分:19)

错误是由于您尝试发送电子邮件。 Heroku不提供外发邮件服务,但允许使用外部SMTP服务器。要启用免费的Sendgrid插件:$ heroku addons:add sendgrid:starter

#Set config/environment.rb

config.action_mailer.delivery_method = :smtp

然后配置SMTP连接。

ActionMailer::Base.smtp_settings = { :address => "smtp.someserver.net", :port => 25, :user_name => "someone@someserver.net", :password => "mypass", :authentication => :login }

注意: - 免费的Sendgrid插件有限(每天最多发送200封电子邮件。)。

答案 1 :(得分:17)

看起来您正在尝试从您的应用发送电子邮件 - Heroku不会在其平台上提供任何邮件服务。您需要使用像SendGrid这样的第三方(他们有一个Heroku插件)才能发送SMTP电子邮件。