Can't load Rails application on IIS

303 views Asked by At

I have spent the past few hours trying to deploy my Ruby on Rails app to my Windows Server 2008 R2 vps running IIS 7.5.

I thought it was going well up till the point I got this error when trying to access the site via my browser.

Error Helicon Zoo module has caught up an error.

Please see the details below.

Windows error The system cannot find the path specified. (ERROR CODE: 3) Internal module error message:

Can't CreateDirectory '' file type: ZooException file: Common\WinApi.cpp

line: 253 version: 3.1.98.538

The log file it's self is even less helpfull:

[13.02.2016 02:47:48.751921] [v 3.1.98.538] [tid 0x000100d4] [sev 2] # 26373856 Application has been started

[13.02.2016 02:47:48.831925] [v 3.1.98.538] [tid 0x000100d4] [sev 2] # 26373856 Application has been terminated

The path of the CreateDirectory bit seems strange to me but can't figure out where it's coming from.

The site runs fine on my local machine, but my local machine is on Fedora so doesn't use web.config files. Unfortunately I'm stuck with my Windows server for the time being so Linux hosting isn't an option at the moment.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>

<heliconZoo>
        <clear />
        <application name="ruby.project">
            <environmentVariables>
                <add name="RAILS_RELATIVE_URL_ROOT" value="%APPL_VIRTUAL_PATH%" />
                <add name="DEPLOY_FILE" value="deploy.rb" />
                <add name="RACK_ENV" value="development" />
                <add name="CONSOLE_URL" value="console" />
            </environmentVariables>
        </application>
 </heliconZoo>


<handlers>
  <remove name="ruby.project#x86" />
  <remove name="ruby.project#x64" />
        <add name="ruby.project#x64" path="*" verb="*" modules="HeliconZoo_x64" scriptProcessor="ruby.2.0.rack" resourceType="Unspecified" requireAccess="Script" preCondition="bitness64" />
        <add name="ruby.project#x86" path="*" verb="*" modules="HeliconZoo_x86" scriptProcessor="ruby.2.0.rack" resourceType="Unspecified" requireAccess="Script" preCondition="bitness32" />
  
</handlers>


<!-- URL Rewrite rules to pass static files, limit console access, etc. -->
<rewrite>
  <rules>

    <!-- This rule rewrites '/' requests to /public/index.html -->
    <rule name="index" stopProcessing="true">
      <match url="^$" ignoreCase="false" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
        <add input="{APPL_PHYSICAL_PATH}" pattern="(.*)" ignoreCase="false" />
        <add input="{C:1}public\index.html" matchType="IsFile" />
      </conditions>
      <action type="Rewrite" url="public/index.html" />
    </rule>

    <rule name="Static Files" stopProcessing="true">
      <match url="^(?!public)(.*)$" ignoreCase="false" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
        <add input="{APPL_PHYSICAL_PATH}" pattern="(.*)" ignoreCase="false" />
        <add input="{C:1}public\{R:1}" matchType="IsFile" />
      </conditions>
      <action type="Rewrite" url="public/{R:1}" />
    </rule>

    <rule name="Rails 3.1 assets" stopProcessing="true">
      <match url="^assets/(.*)$" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
        <add input="{APPL_PHYSICAL_PATH}" pattern="(.*)" ignoreCase="false" />
        <add input="{C:1}app\assets\{R:1}" matchType="IsFile" />
      </conditions>
      <action type="Rewrite" url="app/assets/{R:1}" />
    </rule>
    
    <!-- This rule shows welcome page when no Rack application exist. -->
    <rule name="Rewrite to Zoo index if that's an empty application" stopProcessing="true">
      <match url="^/?$" ignoreCase="false" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
        <add input="{APPL_PHYSICAL_PATH}" pattern="(.*)" ignoreCase="false" />
        <add input="{C:1}config.ru" matchType="IsFile" negate="true" />
      </conditions>

      <action type="Rewrite" url="public/zoo-index.html" />
    </rule>

  </rules>    
</rewrite>

</system.webServer>

Up to this point

  • Reset website (Multiple times)
  • Ran deploy.rb (Multiple times)
  • Played with folder permissions. Even at one point allowing special access to everyone, don't worry I've retracted that now.
  • Refreshed App pool.

I've search through Google but can't seem to find anything. Does anyone here have any suggestions?


The error can actually be seen here at the moment. https://bonniechef.com/ Hopefully not for much longer...

1

There are 1 answers

1
Yaroslav On BEST ANSWER

Sorry Doug, I can no longer provide support for this Web Platform Installer-based version of Zoo as I am working on a new standalone version and these versions have completely different configuration and processing logic. This new version is almost finished and I am finalizing installations and deployment of the whole system, however, I work on this project alone now and support for older products and other issues eats up most of my time. Still considering making it open source, but arranging a good open source project will require even more time and commitment. I expect to make a release within a month. This new version will be supported and actually will be much easier to maintain and more transparent as we will control most aspects of the product. Sorry for the inconvenience.