我在远程服务器上的以下地址上托管了两个服务:
192.168.200.157:80/service1
192.168.200.157:7071/service2
我正在使用AJAX请求请求这些服务。我已经使用ARR和URL重写工具来进行跨域AJAX请求。 为此,我在IIS的URL重写工具中定义了一条规则,如下所示:
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://192.168.200.157:/{R:1}" />
</rule>
使用此规则,我可以向“service1”发送跨域请求,但发送到“service2”的请求正在显示“404 Not Found”错误。
Firebug结果还显示此规则正在向service1发送请求,但无法向service2发送请求。
上述规则需要哪些修改或添加才能成功向两个服务发送请求?
答案 0 :(得分:0)
在代码中的操作节点的 url 属性中 - 注意冒号后跟斜杠。这意味着没有指示端口,因此使用默认端口80。基本上,这些例子是等价的(所以摆脱不必要的冒号):
http://test1/foo
http://test1:/foo
http://test1:80/foo
所以...此规则对所有网址的说明(因为匹配节点的 url 属性将匹配所有值),将所有请求转发到操作<中指示的端口80 / strong>节点的 url 属性值。
匹配网址值必须仅选择一些请求(而不是所有请求)。而且您需要为剩余的请求编写第二条规则。你的第二条规则可能就是你的所有情况,像这样的东西将捕获到目前为止的所有请求:
<rule name="ReverseProxyInboundRule2" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://192.168.200.157:7071/{R:1}" />
</rule>