Мы масштабировали некоторые части нашего приложения ASP.NET для запуска на одном сервере, а другие части - на другом сервере (& под поддоменом).
Эти два сервера совместно используют (SQL Server) Session. Мы использовали эту статью MS для создания крошечного HTTP-модуля для синхронизации доменного имени приложения между двумя серверами (без кода домена cookie, который можно настроить в web.config. Позже я нашел эту статью CodeProject, которая по сути является тем же самым.)
Все работает хорошо, за исключением небольшой проблемы: изменения в развертывании или web.config требуют ручного рецикла пула приложений (автоматический рецикл больше не работает - вместо этого мы получаем ошибку "web server is currently unavailable / hit refresh").
Я попробовал переместить код именования домена приложения из модуля HTTP в раздел Application_Start файла Global.asax (возможно, это лучшее место для него?) - но получил ту же проблему.
Я знаю, что одним из решений является жесткое кодирование имени приложения в одной из хранимых процедур SQL Server Session; но я немного сомневаюсь, стоит ли это делать.
Edit: The app is ASP.NET 3.5 under IIS 6.0 (thanks @Chris & @bzlm)