2016-07-08 53 views
0

背景:我正在將傳入的80/443流量轉發到\\SERVER2; TFS正在運行\\SERVER3。我希望將所有與TFS相關的請求路由到\\SERVER3。我必須這樣做,因爲我在\\SERVER2上運行了Server Essentials,這足以在URL重寫下工作得很好(幾乎和SharePoint一樣糟糕,但不完全)。在URL重寫期間奇數404

這裏的默認網站上唯一的規則:

<rule name="TFS Rewrite" stopProcessing="true"> 
    <match url="^tfs(.*)" /> 
    <action type="Rewrite" url="http://server3:8080/{R:0}" /> 
</rule> 

...這是失敗請求日誌:https://1drv.ms/f/s!AodXF_j3BiWkhPAZwjnwC-rAecVgtw

注意對PDF的線#87所請求的URL:http://server3:8080/tfs。我可以瀏覽到內部就好了。外部URL是https://tfs.domain.com/tfs

所有文件特定的下一個條目是404本身,在#165行。

我只是不明白這一點。這是一個簡單的規則。爲什麼IIS會爲404顯式生效並且工作正常?

編輯

作爲一個測試,我添加了這個條件:

<conditions> 
    <add input="{HTTP_HOST}" pattern="tfs.domain.com" /> 
    </conditions> 

現在,如果我瀏覽到https://tfs.domain.com/,默認的網站加載。

這與日誌一起似乎表明,雖然IIS正在重寫URL,但流量實際上未被路由到\\SERVER3

這是怎麼回事?這是一個謎。

回答

0

好吧,我明白了。

我已經安裝了URL Rewrite和ARR Modules,但我還沒有啓用代理處理。

我創建了一個虛擬的反向代理規則,並提示在IIS中將其打開。我這樣做,刪除了虛擬規則,現在一切都按預期工作。