我必须在新的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>
服务器配置中可能缺少的任何想法?是否需要配置某个安全设置以允许重写?
答案 0 :(得分:2)
我发现了我的问题。我没有在此服务器上安装应用程序请求路由。要么我忘记将它安装在我的其他服务器上,要么因为其他原因而已经安装在那里。
发现这篇文章帮我解决了。
答案 1 :(得分:1)
在Windows 2008,IIS 7.5上有类似的问题 问题是应用程序池处于集成模式。这导致了重写的问题。 重定向始终没问题,但重写始终失败。
将应用程序池更改为经典模式并解决问题(至少目前为止)。
更好的解决方案可能是http://forums.iis.net/t/1200671.aspx?ARR+URl+Rewrite+is+not+working+for+external+servers 就在最后。但我还没试过。