IIS Url重写重写失败,但重定向工作完美无缺

时间:2013-03-12 03:57:26

标签: iis url-rewriting reverse-proxy

我必须在新的Intranet服务器(Win 2008 R2 Standard SP1)上设置几个应用程序。我在使用URL重写器规则时遇到了一些困难。我有一个类似的规则在我的本地IIS(Win 7)上工作得很好。该规则旨在为Web服务创建反向代理,使客户端的jQuery AJAX请求能够避免XSS。

规则如下所示,如果按原样使用,请在浏览器中输入示例网址:

http://srv01.domain.com/serviceproxy/workflow/Users/GetUsers?q=smith&max=10

我从服务器得到404响应。如果我将类型更改为“重定向”,我会从服务器获得预期的响应(但显然这将使我避免XSS的尝试失效)。

<rewrite>
  <rules>
    <rule name="Reverse Proxy - WCF Service" stopProcessing="true">
      <match url="serviceproxy/workflow/(.+)" />
      <action type="Rewrite" url="http://srv01.domain.com/WorkflowService/{R:1}" />
    </rule>
  </rules>
</rewrite>

服务器配置中可能缺少的任何想法?是否需要配置某个安全设置以允许重写?

2 个答案:

答案 0 :(得分:2)

我发现了我的问题。我没有在此服务器上安装应用程序请求路由。要么我忘记将它安装在我的其他服务器上,要么因为其他原因而已经安装在那里。

发现这篇文章帮我解决了。

http://www.iis.net/learn/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing

答案 1 :(得分:1)

在Windows 2008,IIS 7.5上有类似的问题 问题是应用程序池处于集成模式。这导致了重写的问题。 重定向始终没问题,但重写始终失败。

将应用程序池更改为经典模式并解决问题(至少目前为止)。

更好的解决方案可能是http://forums.iis.net/t/1200671.aspx?ARR+URl+Rewrite+is+not+working+for+external+servers 就在最后。但我还没试过。