RubyでWebrick利用時にRequestURITooLargeエラー発生時の対処

| コメント(0) | トラックバック(0)

Webrickでエラーが発生したので、その対処メモ

エラー内容

ERROR WEBrick::HTTPStatus::RequestURITooLarge

[2012-03-19 15:52:53] ERROR WEBrick::HTTPStatus::RequestURITooLarge
[2012-03-19 15:52:53] ERROR TypeError: can't convert nil into an exact number
        C:/Ruby193/lib/ruby/1.9.1/webrick/accesslog.rb:111:in `-'
        C:/Ruby193/lib/ruby/1.9.1/webrick/accesslog.rb:111:in `setup_params'
        C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:211:in `access_log'
        C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `run'
        C:/Ruby193/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'

原因&対処

Webrickを利用時、WEBフォームから大量の文字をPOSTした場合エラーが発生。 2083byteの制限がある様子。

option指定ができないのでソースを直接上書きするしか方法がなさそう? そこで、下記の内容に変更

MAX_URI_LENGTH = 64 * 1024 * 1024

path

    #linux
    ~/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/webrick/

    #windows
    C:\Ruby193\lib\ruby\1.9.1\webrick

httprequest.rb L293

ruby
    #    MAX_URI_LENGTH = 2083 # :nodoc:
    MAX_URI_LENGTH = 64 * 1024 * 1024 # :nodoc:

    def read_request_line(socket)
      @request_line = read_line(socket

関連記事

トラックバック(0)

トラックバックURL: http://mukaer.com/cgi-bin/mt/mt-tb.cgi/61

コメントする

PR

PR





検索

Loading

メニュー

twitter