IIS重写到新端口 - 不同的IIS版本,不同的结果

时间:2016-03-31 15:29:57

标签: iis rewrite

服务器(x.com)具有以下参数:
  - 可从外面80号港口进入   - 它有一个在端口1000上运行的内部服务   - 需要从子域(service.x.com)

访问该服务

在Windows 10上运行IIS,我执行了以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="URL Rewrite" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                    </conditions>
                    <action type="Rewrite" url="{C:1}://localhost:1000/{R:1}" logRewrittenUrl="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

它工作得很漂亮。

另一方面,在Windows Server 2012 R2上运行的相同代码产生了这样的结果:

HTTP错误404.4 - 未找到
您正在寻找的资源没有与之关联的处理程序
模块IIS Web核心
通知MapRequestHandler
Handler ExtensionlessUrlHandler-Integrated-4.0
错误代码0x8007007b

我不明白为什么它适用于一个版本的IIS,而不适用于另一个版本。

1 个答案:

答案 0 :(得分:1)

我发现:需要启用ARR(应用程序请求路由) 当然,任何错误消息和日志中都没有提到这一点。