使用HttpPlatformHandler在IIS中主持Sinatra应用程序

时间:2015-07-08 18:52:17

标签: ruby iis sinatra

我已经阅读了有关httpplatformhandler产品的每个帖子/博客,但我仍然不确定我是否能够使用HttpPlatformHandler在IIS中托管Sinatra(NON ruby​​ on rails)应用程序。这可能吗?我看到rails的例子,但我不知道如何改变以允许纯Ruby / Sinatra。我不确定我是否需要彪马或其他一些中间人"去做这个。如果可以,有人会提供一个web.config示例,该示例适用于默认的Sinatra应用程序:

要求' sinatra'

得到' / hi'做 " Hello World!" 端

1 个答案:

答案 0 :(得分:0)

这适用于我的rails应用程序 - sinatra不应该是任何不同的。只需更改ruby二进制文件的路径...... HOME / HOMEDRIVE / HOMEPATH的EnvironmentVariables在使用Active Directory用户的Windows服务器环境中是必需的。您可以在一台本地计算机上忽略它。

<?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" processesPerApplication="1" stdoutLogFile="C:\inetpub\wwwroot\rails\FrontEndServer\log\rails.log" startupTimeLimit="20" processPath="C:\RailsInstaller\Ruby2.3.0\bin\ruby.exe"
                      arguments="&quot;C:\RailsInstaller\Ruby2.3.0\bin\puma&quot; --env production --dir &quot;C:\inetpub\wwwroot\rails\FrontEndServer&quot; -p %HTTP_PLATFORM_PORT% ">
            <environmentVariables>
                <environmentVariable name="HOME" value="C:\temp"/>
                <environmentVariable name="HOMEDRIVE" value="C:\temp"/>
                <environmentVariable name="HOMEPATH" value="C:\temp"/>
            </environmentVariables>
        </httpPlatform>
    </system.webServer>
</configuration>