Ошибка слишком большого числа перенаправлений при просмотре приложений, размещенных за балансировщиком нагрузки IIS ARR

Я разместил свое веб-приложение ASP.NET на двух серверах приложений. А на третьем сервере я создал ферму серверов, используя модуль ARR в IIS. Ферма серверов включает два сервера приложений. Я использую политику «Round Robin» в балансировке нагрузки. Добавлено правило перезаписи URL по умолчанию. Оба сервера приложений доступны, и проверка работоспособности для них обоих проходит.

Когда я просматриваю веб-приложение, используя веб-сервер ARR в качестве хоста, я получаю страницу входа, как и ожидалось. Если я попытаюсь просмотреть то же самое в другом браузере, там также будет показана страница входа. В инструменте «Мониторинг» я вижу, что запросы равномерно отправляются на два сервера приложений с помощью ARR. Так что балансировка нагрузки пока работает хорошо.

Однако, когда я ввожу учетные данные и нажимаю кнопку входа в систему, я получаю ошибку «Err_Too_Many_Redirects» и вижу большое количество вызовов в Fiddler.

Кто-нибудь может здесь помочь?

Обратите внимание, что я не использую HTTPS. Если я просматриваю свои приложения напрямую, используя IP-адреса серверов приложений, они работают отлично. Эта проблема "слишком большого количества перенаправлений" возникает только тогда, когда они находятся за балансировщиком нагрузки ARR.


person Learner    schedule 14.09.2017    source источник


Ответы (1)


Я использую в своем приложении сеанс без файлов cookie. IIS на сервере ARR используется для генерации нового идентификатора сеанса для каждого обнаруженного запроса. Таким образом, для каждого запроса он генерировал новый идентификатор сеанса, который снова порождал новый запрос. Так что это входило в своего рода бесконечный цикл.

Этот вопрос SO и этот пост дал мне подсказку и ответ. Удаление фильтров ISAPI (в рамках функции фильтров ISAPI) и отключение всех расширений ISAPI (в рамках функции ограничений ISAPI и CGI) в IIS, где работает ARR, помогли мне решить эту проблему.

person Learner    schedule 18.09.2017