我能够预先编译资产以推送到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'
答案 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电子邮件。