2013-03-12 122 views
4

我必须在新的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> 

任何想法可能会从服务器配置中丢失什么?是否需要配置某个安全设置以允许重写?

回答

1

对Windows 2008中的类似问题,IIS 7.5 的问题是,应用程序池是集成模式。这导致重写问题。 重定向总是正常,但重写总是失败。

将应用程序池更改为经典模式并解决问题(至少现在是这样)。

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

+0

按照接受的答案中的说明完成后,重写仍然不起作用。改变流水线模式固定它。 – ThePants 2014-12-04 18:37:09