使用ARR(应用程序请求路由)的反向代理 - POST方法不起作用

时间:2014-10-16 09:27:55

标签: iis reverse-proxy arr

我们正在尝试使用ARR(应用程序请求路由)和URL重写来设置反向代理机制。当我们使用GET方法请求时,重写工作正常 但是当我们使用此内容类型(x-form-urlencoded)请求发送Post方法时,ARR不会返回任何响应。我该如何解决这个问题?

 <rewrite>
      <rules>
            <rule name="InboundGeneral" enabled="true" stopProcessing="true">
                <match url="^(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="http://localhost:29341/{R:1}" logRewrittenUrl="true" />
            </rule>
      </rules>
    </rewrite>

1 个答案:

答案 0 :(得分:1)

这是一个老问题,但我在寻找解决同样问题的方法时找到了它。

我发现问题是由于同一站点上运行的ARR和ASP.net MVC之间的冲突造成的。事实证明,如果您在主站点中出于任何原因处理请求参数(例如filters或global.asax),它将清除ARR发送的请求中的post参数,从而导致超时。

您可以通过以下两种方式之一解决问题:

  1. 将ARR放在一个单独的过程中(如果可以的话)
  2. 或者确保您拥有的任何过滤器都会检查所使用的路径 ARR并避免触及请求参数。