2012-05-23 62 views
0

我在Windows 2003 R2 SP2服務器上部署了Rails 3.2.3應用程序(ruby 1.9.3p125),(不要問)。這是我的Gemfile:Rails 3.2.3,Mongrel在WIndows Server 2003 R2 SP2上,send_file

gem 'mysql2' 
gem 'tiny_tds' 
gem 'activerecord-sqlserver-adapter' 
gem 'pdf-toolkit', "~> 1.0.0.rc1" 
gem 'mongrel', '>= 1.2.0.pre2' 
gem 'dispatcher' 

我運行Apache 2.2,並且在運行與Windows服務的兩個雜種。 Apache的靴子很好,並且沒有錯誤報告。該應用程序正在運行。簡單做了一些PDFTK填寫表格,併發送一個PDF文件,即:

send_file(....) 

在發展中,我得到了正確的PDF,在生產環節上的窗戶,我得到一個空的PDF,這在我的error.log中:

2012-05-23 10:08:42 -0700: Error calling Dispatcher.dispatch #<NameError: uninitialized constant ActionController::CgiRequest> 
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/rails.rb:76:in `block in process' 
<internal:prelude>:10:in `synchronize' 
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/rails.rb:74:in `process' 
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:165:in `block in process_client' 
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:164:in `each' 
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:164:in `process_client' 
c:/ruby193/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel.rb:291:in `block (2 levels) in run' 

我有這個使用Rails 2.3.8和Ruby 1.8.7運行,因爲它正確運行Apache的配置還沒有改變,所以我不認爲這是關係到Apache的配置,我m確定它涉及到由於Rails 3而必須添加的新雜種材料。

更新:

我放棄了,並嘗試使用薄,工作正常。

鑑於大多數關於在Windows上安裝thin的帖子都來自3.0.x時間範圍。從3.2.3和Ruby 1.9.3開始我會進行一些複習。

你仍然有兩個通道

gem install eventmachine --pre 
gem install thin 

你必須有已紅寶石安裝的devkit安裝

測試後安裝薄,我再沒有我的Apache配置使用薄:

NameVirtualHost *:80 
<VirtualHost *:80> 
    ServerName pdftk.neeis.com 
    DocumentRoot E:/Apache/pdftk/public/ 
    RewriteEngine On 
    <Proxy balancer://thinservers> 
    BalancerMember http://127.0.0.1:3005 
    BalancerMember http://127.0.0.1:3006 
    </Proxy> 
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f 
    RewriteRule ^/(.*) balancer://thinservers%{REQUEST_URI} [P,QSA,L] 
    ProxyPass/balancer://thinservers/ 
    ProxyPassReverse/balancer://thinservers/ 
    ProxyPreserveHost On 
    ProxyPass /images ! 
    ProxyPass /stylesheets ! 
    ProxyPass /javascripts !  
    <Proxy * > 
    Order Deny,Allow 
    Allow from all 
    </Proxy> 
    ErrorLog E:/Apache/Logs/error.log 
    CustomLog E:/Apache/Logs/access.log combined 
    LogLevel debug 
</VirtualHost> 

然後把瘦身轉變成windows服務,必須安裝windows 2003 Resource Kit,將svrany.exe複製到System32,使用sc命令創建se rvices,然後做一些regedt32 hackery。但是,它的工作原理!

+0

閱讀http://stackoverflow.com/a/10636946/643500,看看它是否有助於 –

+0

鋸已經,不同的是,我的應用程序實際運行,我只得到當我嘗試send_file時出錯。我會在那篇文章上多寫一些我的頭,看看我可以從錯誤消息相同的事實中得出什麼結論。 – RadBrad

+0

在瘦服務器上嘗試一下,它應該是一個基本的變化來測試它 –

回答

0

編輯:

有的寶石不支持Rails 3的是,試圖薄。

據我所知,mongrel_cluster目前還不支持Rails 3。 最快的解決方案是切換到Thin,它支持多個Rails 實例,它的配置文件非常類似於Mongrel的 之一。

信用:https://stackoverflow.com/a/5660824/643500

相關問題