Ошибка слишком большого числа перенаправлений при просмотре приложений, размещенных за балансировщиком нагрузки IIS ARR
Я разместил свое веб-приложение ASP.NET на двух серверах приложений. И на третьем сервере я создал Ферму серверов, используя модуль ARR в IIS. Ферма серверов включает в себя два сервера приложений. Я использую политику "Round Robin" в балансировке нагрузки. Добавлено правило перезаписи URL по умолчанию. Оба сервера приложений доступны, и проверка работоспособности проходит для них обоих.
Когда я просматриваю веб-приложение, используя веб-сервер ARR в качестве хоста, я получаю страницу входа в систему, как и ожидалось. Если я пытаюсь просмотреть ту же вещь в другом браузере, там также отображается страница входа. В инструменте "Мониторинг" я вижу, что запросы ARR равномерно отправляются на два сервера приложений. Так что балансировка нагрузки пока работает хорошо.
Однако, когда я ввожу учетные данные и нажимаю кнопку входа в систему, я получаю ошибку "Err_Too_Many_Redirects", и я также вижу большое количество вызовов в Fiddler.
Кто-нибудь может здесь помочь?
Обратите внимание, что я не использую HTTPS. Если я просматриваю свои приложения напрямую, используя IP-адреса сервера приложений, они работают отлично. Эта проблема "слишком много перенаправлений" возникает только тогда, когда они находятся за балансировщиком нагрузки ARR.
1 ответ
Я использую сеанс без файлов cookie в своем приложении. IIS на сервере ARR используется для создания нового идентификатора сеанса для каждого запроса, с которым он столкнулся. Таким образом, для каждого запроса он генерировал новый идентификатор сеанса, и это снова вызывало новый запрос. Так что это входило в виде бесконечного цикла.
Этот ТАК вопрос и этот пост дали мне подсказку и ответ. Удаление фильтров ISAPI (в разделе "Фильтры ISAPI") и отключение всех расширений ISAPI (в разделе "Ограничения ISAPI и CGI") в IIS, где работает ARR, помогли мне решить эту проблему.