我们正在尝试使用ARR和URL Rewrite设置反向代理机制。当目标URL是托管在同一服务器中的URL时,重写工作正常。但是当我们尝试将其路由到外部服务器时,路由正在运行。我们正在接受
HTTP Error 502.3 - Bad Gateway
The operation timed out
Module ApplicationRequestRouting
Notification ExecuteRequestHandler
Handler ApplicationRequestRoutingHandler
Error Code 0x80072ee2
Requested URL http://localhost:8882/ff
Physical Path D:\pocwebsites\exposed\ff
Logon Method Anonymous
Logon User Anonymous
•The CGI application did not return a valid set of HTTP errors.
•A server acting as a proxy or gateway was unable to process the request due to an error in a parent gateway.
•Use DebugDiag to troubleshoot the CGI application.
•Determine if a proxy or gateway is responsible for this error.
请找到下面给出的web.config文件,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="or_rule_1" enabled="true">
<match url=".*" />
<action type="Rewrite" url="http://www.cnn.com" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
答案 0 :(得分:5)
我们遇到了类似的问题。将URL重写到本地站点没有问题,但重写到外部站点会导致错误的网关错误。
我们有一个内部代理(您也在IE中设置的代理访问外部网站)。在ARR反向代理页面中设置此相同代理解决了我们的问题。
答案 1 :(得分:3)
在Windows 2008,IIS 7.5上有类似的问题 问题是应用程序池处于集成模式。这导致了重写的问题。 重定向始终没问题,但重写始终失败。
我将应用程序池更改为经典模式并解决了问题(至少目前为止)。
更好的解决方案可能是http://forums.iis.net/t/1200671.aspx?ARR+URl+Rewrite+is+not+working+for+external+servers 就在最后。但我还没试过。