4

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

规则如下,如果我按原样使用它,然后在浏览器中输入示例 URL:

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>

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

4

2 回答 2

2

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

找到帮助我解决它的这篇文章。

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

于 2013-03-12T05:38:44.157 回答
1

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

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

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

于 2014-07-03T12:51:28.543 回答