2010-04-15 67 views
5

其他任何人的IronRuby玩?獲得Rails應用程序運行在IronRuby的機架

我已經成功地得到了IIS 5.1在我的本地機器上運行的IronRuby.Rails.Example項目。我現在試圖讓我自己的演示軌道網站以相同的方式運行。

我的web.config是從示例項目略有不同。我試圖只使用與IronRuby 1.0分發的內容以及我使用gem安裝的內容。

我收到以下錯誤,並沒有給我很多去:

d:/demo/config/boot.rb:66:在'退出': 退出(SystemExit )

嘗試了很多不同的事情後,我認爲它有一個問題找到寶石。我已經附加了我的web配置和ironrack.log。有沒有人有指點我做錯了什麼?

謝謝!

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
     <!-- custom configuration section for DLR hosting --> 
     <section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting" requirePermission="false"/> 
    </configSections> 
    <system.webServer> 
     <handlers> 
      <!-- clear all other handlers first. Don't do this if you have other handlers you want to run --> 
      <clear/> 
      <!-- This hooks up the HttpHandler which will dispatch all requests to Rack --> 
      <add name="IronRuby" path="*" verb="*" type="IronRuby.Rack.HttpHandlerFactory, IronRuby.Rack" resourceType="Unspecified" requireAccess="Read" preCondition="integratedMode"/> 
     </handlers> 
    </system.webServer> 
    <system.web> 
     <!-- make this true if you want to debug any of the DLR code, IronRuby.Rack, or your own managed code --> 
     <compilation debug="true"/> 
    <httpHandlers> 
     <!-- clear all other handlers first. Don't do this if you have other handlers you want to run --> 
     <clear/> 
     <!-- This hooks up the HttpHandler which will dispatch all requests to Rack --> 
     <add path="*" verb="*" type="IronRuby.Rack.HttpHandlerFactory, IronRuby.Rack" /> 
    </httpHandlers> 
    </system.web> 
    <!-- DLR configuration. Set debugMode to "true" if you want to debug your dynamic language code with VS --> 
    <microsoft.scripting debugMode="false"> 
     <options> 
      <!-- Library paths: make sure these paths are correct --> 
      <!--<set option="LibraryPaths" value="..\..\..\Languages\Ruby\libs\; 
                ..\..\..\..\External.LCA_RESTRICTED\Languages\Ruby\ruby-1.8.6p368\lib\ruby\site_ruby\1.8\; 
                ..\..\..\..\External.LCA_RESTRICTED\Languages\Ruby\ruby-1.8.6p368\lib\ruby\1.8\"/>--> 
      <set option="LibraryPaths" value="C:\IronRuby\lib\IronRuby;C:\IronRuby\lib\ruby\1.8;C:\IronRuby\lib\ruby\site_ruby;C:\IronRuby\lib\ruby\site_ruby\1.8"/> 
     </options> 
    </microsoft.scripting> 
    <appSettings> 
     <add key="AppRoot" value="."/> 
     <add key="Log" value="ironrack.log"/> 
     <!-- <add key="GemPath" value="..\..\..\..\External.LCA_RESTRICTED\Languages\Ruby\ruby-1.8.6p368\lib\ruby\gems\1.8"/> --> 
     <add key="GemPath" value="C:\IronRuby\Lib\ironruby\gems\1.8\gems"/> 
     <add key="RackEnv" value="production"/> 
    </appSettings> 
</configuration> 

=== Booting ironruby-rack at 4/15/2010 1:27:12 PM [DEBUG] >>> TOPLEVEL_BINDING = binding 
=> Setting GEM_PATH: 'C:\\IronRuby\\Lib\\ironruby\\gems\\1.8\\gems' 
=> Setting RACK_ENV: 'production' 
=> Loading RubyGems [DEBUG] >>> require 'rubygems' 
=> Loading Rack >=1.0.0 [DEBUG] >>> gem 'rack', '>=1.0.0';require 'rack' 
=> Loaded rack-1.1 
=> Application root: 'D:\\demo' 
=> Loading Rack application [DEBUG] >>> Rack::Builder.new { (
    require "config/environment" 

    ENV['RAILS_ENV'] = 'development' 

    use Rails::Rack::LogTailer 
    use Rails::Rack::Static 
    run ActionController::Dispatcher.new 
    ) }.to_app exit 
    D:/demo/config/boot.rb:66:in `exit': exit (SystemExit) 
     from D:/demo/config/boot.rb:66:in `load_rails_gem' 
     from D:/demo/config/boot.rb:54:in `load_initializer' 
     from D:/demo/config/boot.rb:38:in `run' 
     from D:/demo/config/boot.rb:11:in `boot!' 
     from D:/demo/config/boot.rb:110 
     from C:/IronRuby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
     from C:/IronRuby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
     from D:/demo/config/environment.rb:7 
     from C:/IronRuby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
     from C:/IronRuby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
     from (eval):1 
     from C:/IronRuby/lib/ironruby/gems/1.8/gems/rack-1.1.0/lib/rack/builder.rb:46:in `instance_eval' 
     from C:/IronRuby/lib/ironruby/gems/1.8/gems/rack-1.1.0/lib/rack/builder.rb:46:in `initialize' 
     from (eval):0 
     from D:\Dev\ironruby\ironruby-ironruby-20bc41b\Merlin\Main\Hosts\IronRuby.Rack\RubyEngine.cs:52:in `Execute' 
     from D:\Dev\ironruby\ironruby-ironruby-20bc41b\Merlin\Main\Hosts\IronRuby.Rack\RubyEngine.cs:45:in `Execute' 
     from D:\Dev\ironruby\ironruby-ironruby-20bc41b\Merlin\Main\Hosts\IronRuby.Rack\Application.cs:68:in `Rackup' 
     from D:\Dev\ironruby\ironruby-ironruby-20bc41b\Merlin\Main\Hosts\IronRuby.Rack\Application.cs:32:in `.ctor' 
     from D:\Dev\ironruby\ironruby-ironruby-20bc41b\Merlin\Main\Hosts\IronRuby.Rack\HttpHandlerFactory.cs:37:in `GetHandler' 
     from System.Web:0:in `MapHttpHandler' 
     from System.Web:0:in `System.Web.HttpApplication.IExecutionStep.Execute' 
     from System.Web:0:in `ExecuteStep' 
     from System.Web:0:in `ResumeSteps' 
     from System.Web:0:in `System.Web.IHttpAsyncHandler.BeginProcessRequest' 
     from System.Web:0:in `ProcessRequestInternal' 
     from System.Web:0:in `ProcessRequestNoDemand' 
     from System.Web:0:in `ProcessRequest' 

回答

3

exit是在ruby中以編程方式退出的方式。

架背後的想法是很實際的應用服務器Ruby的web框架之間的中間件,和。通過解耦,它可以讓無數的ruby框架(rails,sinatra,ramaze等)瞄準單個界面,而無數的應用服務器(雜種,apache與乘客,獨角獸等)也是如此。它看起來像是IR人員試圖讓IIS與機架一起工作。我做了機架的配置軌快速google搜索,發現this page

輸出類似於你在鐵軌服務器的方法看看。我會試圖找出這是從哪裏來

require "config/environment" 

ENV['RAILS_ENV'] = 'development' 

use Rails::Rack::LogTailer 
use Rails::Rack::Static 
run ActionController::Dispatcher.new 
) }.to_app exit 

並嘗試使其更接近該指南中的內容。如果你不能在那裏,我會嘗試在IR郵件列表上發佈。他們往往相當友善,而且由於目前這種情況非常嚴重,他們可能是唯一擁有足夠專業知識的人。

祝你好運:-)

+0

你完全是在正確的道路上。我安裝了兩個Rack版本1.0.1和1.1.0 gems。我卸載了1.1.0,現在我遇到了一個路由錯誤..所以它看起來像我正在重新啓用路徑。 – NotMyself 2010-04-15 22:57:45

+0

甜,很高興我能幫助:) – 2010-04-15 23:08:29

+0

@NotMyself - 看來,我是在同一路徑上,你是;我首先遇到了「退出」問題,卸載1.1.0也修復了我的問題。你能找出路由錯誤嗎? – 2010-04-17 01:19:26

相關問題