HttpPlatformHandler HTTP错误502.3 - 错误的网关

时间:2018-01-03 09:50:05

标签: ruby-on-rails ruby iis cgi

我正在尝试在IIS上运行rails,我按照here提到的步骤进行操作 Scott Hanselman。

这里有一些可能有用的信息:

  • Rails版本:5.1.4
  • Ruby版本:2.3.3

在我按照设置步骤操作后,我反驳了这个问题

  

HTTP错误502.3 - 错误网关

     

尝试路由请求时出现连接错误。

     

最有可能的原因是:

     
      
  • CGI应用程序未返回有效的HTTP错误集。

  •   
  • 由于父网关出错,充当代理或网关的服务器无法处理请求。

  •   
     

你可以尝试的事情:

     
      
  • 使用DebugDiag对CGI应用程序进行故障排除。

  •   
  • 确定代理或网关是否应对此错误负责。

  •   

这是我的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 processPath="C:\RailsInstaller\Ruby2.3.3\bin\ruby.exe" arguments="&quot;C:\RailsInstaller\Ruby2.3.3\bin\rails&quot; server -p %HTTP_PLATFORM_PORT% -b 127.0.0.1" startupTimeLimit="200" stdoutLogEnabled="true" stdoutLogFile="rails.log">
      <environmentVariables>
        <environmentVariable name="RAILS_ENV" value="development" />
      </environmentVariables>
    </httpPlatform>
    <directoryBrowse enabled="true" showFlags="Date, Time, Size, Extension" />
  </system.webServer>
</configuration>

我不确定问题是什么,我想念的是什么配置!

2 个答案:

答案 0 :(得分:2)

您可以阅读此comments

  

Sowmya

     

我确实喜欢它在帖子中说,但我的应用程序显示   HTTP错误502.3 - 错误的网关   尝试路由请求时出现连接错误。   最可能的原因:   CGI应用程序未返回有效的HTTP错误集。   由于父网关中的错误,充当代理或网关的服务器无法处理请求。   通过IIS管理器浏览文件时,我也遇到了同样的错误。   但是在使用webrick运行rails应用程序时。知道我在这里做错了吗?

     

jaytho

     

嘿谢谢你的这篇文章!我一直在努力解决这个问题,我想知道你是怎么做到的。 httpPlatformHandler仅支持IIS8.0 +,它表示2012r2,而RubyOneclickInstaller并不完全支持2012r2。 2008年只是现在 - 当我尝试安装ruby git时,我的测试用例并不完全安装在一个闪亮的新AWS 2012r2盒子上。   然而,听起来很有希望。   我得到了我的应用程序(使用libV8甚至)在2008r2上的web brick上运行,但是对于上面显示的XML配置没有任何乐趣(我得到错误)。我试图安装IIS8.0限制版本拒绝安装,以及httpPlatformHandler。   您使用了哪些确切的平台?   再次感谢您花时间写这篇文章。   Do'h!我抓住ruby安装程序而不是rails安装程序。这就是git没有安装的原因。

     

HostForLIFE.eu

     

很棒的信息!恭喜微软推出这款HttpPlatformHandler。在Windows环境中运行Ruby非常有趣。我们认为运行Ruby on Rails,最好使用JRuby。无论如何,这真的很有趣。我们真的很期待检查您的下一次更新。   此致

     

非常感谢这篇精彩的文章!   我收到了一个错误 - 也许您可以查看Stack Overflow上的问题,看看你是否知道答案?

讨论在stackoverflow post

中继续进行

答案 1 :(得分:2)

尝试使用以下web.config设置,并首先在目录C:\inetpub\wwwroot\中添加项目:

<?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"
      startupTimeLimit="20"
      processPath="C:\Ruby21\bin\ruby.exe"
      arguments="C:\inetpub\wwwroot\rails_on_iis\bin\rails server -p %HTTP_PLATFORM_PORT% -b 127.0.0.1 -e production">
    </httpPlatform>
  </system.webServer>
</configuration>