2011-11-30 22 views
5

Actualmente tengo:WEBrick: RequestURITooLarge: ¿Debo actualizar o usar un servidor diferente?

$ 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 

El problema que estoy teniendo es que estoy usando OpenID para la autenticación y obtener el siguiente error:

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

En el navegador:

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

¿Cómo puedo solucionar esto? ¿Puedo actualizar WEBrick o realmente necesito usar un servidor web diferente?

Gracias

+0

Probé unicornio, pero se obtiene: Usted ya ha activado bastidor 1.3.3, pero su Gemfile requiere rack 1.2.4. Considere el uso de bundle exec. (Gem :: LoadError) – AnApprentice

+0

Es necesario agregar que este es un problema de host local. Estoy tratando de solucionar este error localmente solo en este momento – AnApprentice

Respuesta

8

En Ruby 1.9.3. fuente, dice que MAX_URI_LENGTH = 2083. Eso significa que la última versión de Webrick no puede manejar las URL más largas que esta. Y eso es lo que te dice la excepción WEBrick :: HTTPStatus :: RequestURITooLarge.

Por lo tanto, la solución es utilizar un servidor web diferente. Una de las más preferidas es fina:

sudo gem install thin 

cd to/your/rails/app 

thin -h 

thin -a localhost start 
+0

Cuando intento algo, aparece un error: /.rvm/gems/[email protected]/gems/bundler-1.0.15/lib/bundler/runtime.rb:31:in 'block in setup ' : Ya ha activado el rack 1.3.3, pero su Gemfile requiere el rack 1.2.4. Considere el uso de bundle exec. (Gem :: LoadError) – AnApprentice

+0

bien descubierto eso. ¿La cosa no muestra los raíles registrando como webrick? – AnApprentice

+0

Espera, esto es para locales ... ¿Estás diciendo que debería usar algo para locales? – AnApprentice

0

veo que haya probado unicornio: ¿Ha intentado la ejecución a través bundler? Añadir:

gem :unicorn 

a su Gemfile y ejecute:

bundle exec unicorn_rails 

para iniciar el servidor y vaya a http://localhost:8080.

+0

ejecutando el paquete cargas de los raíles ejecutivos Booting WEBrick – AnApprentice

+0

Oops: tienes razón. Necesitas ejecutar 'bundle exec unicorn_rails' en la raíz. Actualizado la respuesta. – chrismdp

0

Como said here, podría cambiar el MAX_URI_LENGTH utilizando este código:

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