RoR 未在 Windows Server 2012 上加载 IIS 8 和 HttpPlatformHandler

RoR not loading on Windows Server 2012 with IIS 8 and HttpPlatformHandler

导航到 127.0.0.1/rails 在通过 Process Explorer 查看时生成 ruby.exe,它们很快消失并且页面永远不会加载。让我相信我的配置文件有问题。


我跟着Running Ruby on Rails on IIS8 with HttpPlatformHandler,撞墙了

我已验证 Rails 可以 运行 本地 WEBrick 服务器下的应用程序。但是,我无法弄清楚为什么应用程序无法在 IIS8 下启动。我希望有人可以帮助我验证一些事情或指出正确的方向。在博客中,Scott 是 运行ning Windows 8。因此,也许我在使用 Windows Server 2012 时遗漏了一些差异。

Windows 特点

在博客中,Scott 只是打开了 Internet 信息服务。在服务器上,它似乎更复杂一些。我已经安装:

  1. 应用服务器:
    • .NET Framework 4.5
    • Web 服务器 (IIS) 支持
  2. 网络服务器(IIS)
    • 网络服务器
      • 常见的 HTTP 功能
      • 应用程序开发

也许有人可以验证我在该部分中没有遗漏任何内容。如有必要,我可以进一步详细说明。

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
        <httpPlatform stdoutLogEnabled="true" stdoutLogFile="rails.log" startupTimeLimit="20" processPath="c:\Ruby22-x64\bin\ruby.exe"
                  arguments="&quot;C:\Ruby22-x64\bin\rails&quot; server -p %HTTP_PLATFORM_PORT% -b 127.0.0.1">
        </httpPlatform>
    </system.webServer>
</configuration>

感谢您的观看!任何输入将不胜感激!我意识到在 Windows 上提供 Rails 应用程序并不理想。但是,我别无选择...

我认为我最初的问题归结为用户帐户控制问题。但这需要很长时间才能解决,所以我走了一条不同的路。

我最终使用了 Apache。这个对 this question 的回答很有帮助。

我采取的大致步骤:

  1. 安装 Ruby、DevKit、Rails 并确保它们 运行
    • 确保您的应用程序可以 运行 在本地
  2. 创建启动服务器的 .bat 文件。将它们转换为 .exe。然后创建一个服务以 nssm 启动它们。
  3. 设置和配置 Apache
    • 编辑您的 httpd.conf 文件
      • 确保安装了必要的模块。您可以使用 Apache 错误日志来解决此步骤。
      • 如果您选择使用虚拟主机,请包括在内。
        • 编辑 vhosts 文件,使其指向您的应用程序。