在IIS上运行Web应用程序

时间:2015-11-25 12:39:28

标签: iis go

有没有办法在IIS上运行Go web应用程序?
我找到了天蓝色的设置,但它不能用于我的开发机器上 这是azure的web配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
        </handlers>
        <httpPlatform processPath="d:\home\site\wwwroot\go\bin\go.exe" 
                      arguments="run d:\home\site\wwwroot\server.go" 
                      startupTimeLimit="60">
            <environmentVariables>
              <environmentVariable name="GOROOT" value="d:\home\site\wwwroot\go" />
            </environmentVariables>
        </httpPlatform>
    </system.webServer>
</configuration>

2 个答案:

答案 0 :(得分:7)

您的本地IIS无法正常工作,因为您需要安装一个名为HttpPlatformHandler模​​块的单独组件,

https://azure.microsoft.com/en-us/blog/announcing-the-release-of-the-httpplatformhandler-module-for-iis-8/

http://www.iis.net/downloads/microsoft/httpplatformhandler

反向代理或FastCGI是这种新方法不再需要的旧方法。

答案 1 :(得分:2)

HttpPlatformHandler模​​块对我不起作用。我发现this post by Sutean Rutjanalard on Medium非常有用,它改用ASP.NET Core模块。

基本上,您需要像使用.net核心应用程序一样使用“无托管代码”创建应用程序池。以下是web.config。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
        </handlers>
        <aspNetCore processPath=".\YourGoApp.exe" />
    </system.webServer>
</configuration>