【问题标题】:Can't load Rails application on IIS无法在 IIS 上加载 Rails 应用程序
【发布时间】:2016-02-13 01:39:01
【问题描述】:

过去几个小时我一直在尝试将我的 Ruby on Rails 应用程序部署到运行 IIS 7.5 的 Windows Server 2008 R2 vps。

我认为它一直运行良好,直到尝试通过浏览器访问该站点时出现此错误。

Error Helicon Zoo 模块发现了一个错误。

请参阅下面的详细信息。

Windows 错误 系统找不到指定的路径。 (错误代码:3) 内部模块错误信息:

Can't CreateDirectory '' 文件类型:ZooException 文件:Common\WinApi.cpp

行:253 版本:3.1.98.538

它自己的日志文件就更没用了:

[13.02.2016 02:47:48.751921] [v 3.1.98.538] [tid 0x000100d4] [sev 2] # 26373856 应用程序已启动

[13.02.2016 02:47:48.831925] [v 3.1.98.538] [tid 0x000100d4] [sev 2] # 26373856 应用程序已终止

CreateDirectory 位的路径对我来说似乎很奇怪,但无法弄清楚它来自哪里。

该站点在我的本地计算机上运行良好,但我的本地计算机在 Fedora 上,因此不使用 web.config 文件。不幸的是,我暂时只能使用 Windows 服务器,因此目前无法选择 Linux 托管。

<?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>

到此为止

  • 重置网站(多次)
  • 运行 deploy.rb(多次)
  • 使用文件夹权限播放。即使在某一时刻允许每个人都有特殊的访问权限,不用担心我现在已经撤回了。
  • 刷新了应用程序池。

我已经通过 Google 进行了搜索,但似乎找不到任何东西。这里有人有什么建议吗?


目前实际上可以在此处看到错误。 https://bonniechef.com/ 希望不会太久……

【问题讨论】:

  • 其实是在找这个目录:C:/Inetpub/vhosts/s17721386.onlinehome-server.info/bonniechef.com/logs
  • 不抱歉,我刚刚对日志的目录刷新进行了更改,它会显示我描述的错误 - 事实上它现在实际上会说“这里有东西”。在等待看是否有人可以回答时仍在尝试修复它

标签: ruby-on-rails ruby iis heliconzoo


【解决方案1】:

抱歉,Doug,我无法再为 Zoo 的这个基于 Web 平台安装程序的版本提供支持,因为我正在开发一个新的独立版本,并且这些版本具有完全不同的配置和处理逻辑。这个新版本几乎完成了,我正在完成整个系统的安装和部署,但是,我现在独自从事这个项目,对旧产品和其他问题的支持占用了我大部分时间。仍在考虑使其开源,但安排一个好的开源项目将需要更多的时间和承诺。我希望在一个月内发布。这个新版本将得到支持,实际上将更容易维护和更透明,因为我们将控制产品的大部分方面。 很抱歉给您带来不便。

【讨论】:

  • 很公平。我会在开发过程中使用heroku,耐心等待更新:)
猜你喜欢
  • 2020-12-25
  • 2016-10-28
  • 1970-01-01
  • 2013-06-07
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多