Кто-нибудь настраивал балансировку нагрузки IIS 6.0 на серверах win 2003 с приложением ASP.NET с использованием InProc Sessions. Как этого добиться?
Если вы используете кластеризацию NLB, которая входит в состав Windows Server 2003, то вам нужна настройка affinty. Если вы установите для этого параметра значение «single affinty», связь с одного IP-адреса всегда будет направляться на один и тот же сервер, что позволит клиенту получить доступ к состоянию сеанса InProc. Есть документация о том, как установить его на http://technet.microsoft.com/en-us/library/bb734858.aspx
Это может быть достигнуто в зависимости от того, как вы балансируете.
Многие балансировщики позволят вам назначить cookie в качестве метода для принятия решения о том, куда направлять сеансы Stick, но это очень зависит от используемого вами аппаратного / программного балансировщика. Это единственный способ, которым это сработает для вас.
Я не могу сказать, что мне когда-либо приходилось балансировать нагрузку на сервере IIS 6 с сессиями InProc без использования устройства балансировки нагрузки. Если вы не можете использовать какой-либо распределенный кеш, такой как SQL Server, или более производительный настраиваемый кеш, вам, вероятно, потребуется настроить какую-то «липкую» маршрутизацию сеанса в устройстве балансировки нагрузки. Это позволяет вам размещать свои веб-сайты в ферме, но для каждого пользователя в течение всего сеанса они постоянно перенаправляются на один и тот же конкретный сервер в ферме. Это позволяет использовать сеансы InProc, но при относительно небольших затратах, связанных с отсутствием идеальной балансировки нагрузки.
Примечание: вы можете получить более точные ответы на этот вопрос на дочернем сайте StackOverflow: www.ServerFault.com.
Самый простой способ, если вы не можете консолидировать управление состоянием в службе состояний ASP.NET или базе данных состояний SQL Server, - это настроить веб-ферму с NLB Windows.
http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp
Эта статья в MSDN Mag под названием Создавайте лучшие приложения, управляемые данными, с помощью распределенного кэширования from многое объясняет о том, как использовать Скорость (в настоящее время находится в предварительной версии Community Technology Preview)
Да, я использовал балансировку нагрузки с IIS6. Хотя все остальные более-менее ответили на вопросы :)
Спереди у нас был аппаратный балансировщик нагрузки. Это волшебным образом определило, какой веб-сервер IIS6 запрашивать. Мы не использовали липкие сессии и поэтому использовал сервер состояний ASP.NET (сеансы outproc) для обработки наших сеансов. Я этого не делал, но, как и у других, вам понадобится липкая сессия для InProc.
Сейчас мы используем IIS7, и он по-прежнему работает нормально.
InProc предназначен для одного сервера.
Если вы собираетесь установить балансировщик нагрузки, вам нужно будет посмотреть на StateServer или базу данных SQL Server. Узнайте больше на http://www.codeproject.com/KB/session/ASPNETSession.aspx.