2013-03-12 121 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