IIS Url重写器重写失败,但重定向工作完美无缺
问题描述:
我必须在新的Intranet服务器(Win 2008 R2 Standard SP1)上设置几个应用程序。我一直在使用URL重写器规则有一些困难。我有一个类似的规则在我的本地IIS(Win 7)上工作得很好。该规则旨在为Web服务创建反向代理,该代理支持来自客户端的jQuery AJAX请求避免XSS。IIS 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>
任何想法可能会从服务器配置中丢失什么?是否需要配置某个安全设置以允许重写?
答
我发现我的问题。我没有在此服务器上安装应用程序请求路由。我忘了将它安装在其他服务器上,或者因为其他原因已经在那里。
发现这篇文章,帮助我解决它。
答
对Windows 2008中的类似问题,IIS 7.5 的问题是,应用程序池是集成模式。这导致重写问题。 重定向总是正常,但重写总是失败。
将应用程序池更改为经典模式并解决问题(至少现在是这样)。
更好的解决方案可能是http://forums.iis.net/t/1200671.aspx?ARR+URl+Rewrite+is+not+working+for+external+servers 在最后。但我没有尝试过。
按照接受的答案中的说明完成后,重写仍然不起作用。改变流水线模式固定它。 – ThePants 2014-12-04 18:37:09