2011-11-30 3 views
5

Al momento ho:WEBrick: RequestURITooLarge: devo aggiornare o utilizzare un server diverso?

$ rails s 
=> Booting WEBrick 
=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2011-11-30 13:18:00] INFO WEBrick 1.3.1 
[2011-11-30 13:18:00] INFO ruby 1.9.2 (2011-02-18) [x86_64-darwin10.8.0] 
[2011-11-30 13:18:00] INFO WEBrick::HTTPServer#start: pid=4204 port=3000 

Il problema che sto avendo è che sto usando OpenID per autenticazione e ottenere il seguente errore:

[2011-11-30 13:18:19] ERROR WEBrick::HTTPStatus::RequestURITooLarge 

Nel browser:

Request-URI Too Large 
WEBrick::HTTPStatus::RequestURITooLarge 
WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18) at macbook-pro.local:3000 

Come posso risolvere questo problema? Posso aggiornare WEBrick o devo davvero usare un server web diverso?

Grazie

+0

ho provato Unicorn ma ottiene: Hai già attivato cremagliera 1.3.3, ma il tuo Gemfile richiede il rack 1.2.4. Prendi in considerazione l'utilizzo di bundle exec. (Gem :: LoadError) – AnApprentice

+0

È necessario aggiungere che si tratta di un problema localhost. Sto cercando di risolvere questo bug localmente solo al momento – AnApprentice

risposta

8

In Ruby 1.9.3. fonte, dice che MAX_URI_LENGTH = 2083. Ciò significa che l'ultima versione di Webrick non può gestire gli URL più a lungo di questo. Ed è quello che ti dice l'eccezione WEBrick :: HTTPStatus :: RequestURITooLarge.

La soluzione è quindi utilizzare un server Web diverso. Uno di quelli più favoriti è sottile:

sudo gem install thin 

cd to/your/rails/app 

thin -h 

thin -a localhost start 
+0

Quando provo una cosa, ho un errore: /.rvm/gems/[email protected]/gems/bundler-1.0.15/lib/bundler/runtime.rb:31:in 'blocco nella configurazione' : Hai già attivato il rack 1.3.3, ma il tuo Gemfile richiede il rack 1.2.4. Prendi in considerazione l'utilizzo di bundle exec. (Gem :: LoadError) – AnApprentice

+0

ok capito. La cosa non mostra la registrazione dei binari come webrick? – AnApprentice

+0

Aspetta questo è per locale ... Stai dicendo che dovrei usare la cosa per il locale? – AnApprentice

0

Vedo che hai provato unicorn: Hai provato in esecuzione attraverso bundler? Aggiungere:

gem :unicorn 

al vostro Gemfile ed eseguire:

bundle exec unicorn_rails 

per avviare il server e individuare http://localhost:8080.

+0

eseguendo bundle exec rails s load Booting WEBrick – AnApprentice

+0

Oops: hai ragione. È necessario eseguire 'bundle exec unicorn_rails' nella radice. Aggiornata la risposta. – chrismdp

0

Come said here, è possibile modificare il MAX_URI_LENGTH utilizzando questo codice:

WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)