Обратный прокси с использованием ARR (маршрутизация запросов приложений) — метод POST не работает

Мы пытаемся настроить механизм обратного прокси, используя ARR (маршрутизация запросов приложений) и перезапись URL. Перезапись работает нормально, когда мы используем запрос метода GET, но когда мы отправляем метод Post for с запросом этого типа контента (x-form-urlencoded), 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>

person Moharrer    schedule 16.10.2014    source источник
comment
кто-нибудь может помочь мне?   -  person Moharrer    schedule 17.10.2014
comment
не возвращать никакого ответа означает, что с точки зрения HTTP-кодов? 400? 500? или прерывается? Вы видите что-то в отслеживании неудачных запросов?   -  person TGlatzer    schedule 17.10.2014


Ответы (1)


Это старый вопрос, но я нашел его, когда искал решение той же проблемы, что и у меня.

Я обнаружил, что проблема возникла из-за конфликта между ARR и ASP.net MVC, работающими на одном сайте. Оказывается, если вы по какой-либо причине обрабатываете параметры запроса на своем основном сайте (например, фильтры или global.asax), это очистит параметры сообщения в запросе, отправленном ARR, и, следовательно, приведет к тайм-ауту.

Вы можете решить ее одним из двух способов:

  1. Поместите ARR в отдельный процесс (если можете)
  2. Или убедитесь, что любой фильтр, который у вас есть, проверяет путь, используемый в ARR, и не трогайте параметры запроса.
person albattran    schedule 12.02.2017