MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengapa saya mendapatkan kesalahan 500 Maaf, tetapi ada yang tidak beres saat mendorong aplikasi saya ke Heroku?

Kesalahan

500 server error pada dasarnya adalah penutup untuk semua waktu server Anda memiliki masalah internal (dan tidak dapat membuat permintaan Anda)

Penanganan kesalahan Rails mengarahkan semua kesalahan Anda ke serangkaian file di dalam /public . Anda direktori bernama 422.html , 404.html dan 500.html -- mewakili kesalahan paling umum

Alasan Anda melihat kesalahan 500 bisa karena apa saja di dalam aplikasi Anda. Inilah yang akan saya lakukan untuk memperbaikinya:

Lingkungan

Anda mendapatkan kesalahan dalam produksi, artinya perbedaan dengan lingkungan akan menyebabkan masalah

Saya akan mulai dengan melihat apa yang berubah. Biasanya, DB, atau beberapa pengaturan lingkungan (penyedia DB yang berbeda, dll) yang menyebabkan masalah

DB

500 kesalahan paling umum disebabkan oleh inkonsistensi DB antara lingkungan pengembangan &produksi. Saya tidak tahu tentang mongoid, tetapi dengan orang-orang seperti MYSQL / PGSQL masalahnya adalah dengan tidak bermigrasi dalam produksi:

heroku run rake db:migrate biasanya memperbaiki sebagian besar masalah db dalam produksi

Pemberitahuan Pengecualian

Ada permata yang sangat bagus yang disebut pemberitahuan pengecualian (diekstrak dari inti Rails), bagian dari middlware yang mengirimkan pemberitahuan kesalahan melalui email:

  #config/environments/production.rb
  config.middleware.use ExceptionNotification::Rack,
  :email => {
    :email_prefix => "Subject",
    :sender_address => %{"notifier" <[email protected]>},
    :exception_recipients => %w{[email protected]}
  }

Anda harus mendapatkan pengaya SendGrid di Heroku dan tambahkan ini ke production.rb :

  #config/environments/production.rb
  config.action_mailer.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
  }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. C# MongoDB:Bagaimana cara memetakan objek domain dengan benar?

  2. Data pengisian MongoDB yang tidak termasuk dalam hasil kueri

  3. Pengurai BASH BSON

  4. Dukungan WSO2 DSS untuk mongodb 3.x.x

  5. Meteor - Kesalahan MongoDB:Tidak dapat menerapkan pengubah $addToSet ke non-array