Итак, вы разбили свое приложение на три части на одном сервере, каждая из которых работает в своем собственном пуле приложений в IIS? Я бы оспорил предположения, стоящие за этим, но на самом деле это не ваш вопрос.
Я не думаю, что вы можете сделать это и поделиться состоянием сеанса, используя готовые инструменты. Он использует путь сайта (метабазы) как часть «ключа» состояния сеанса, поэтому сеансы с разных сайтов не конфликтуют.
Но если бы вы могли это сделать, вам нужно было бы использовать один из режимов sessionState вне процесса (StateServer или SQLServer).
Я не пробовал следующее, но они могут вам помочь.
Вот ссылка на статью Code Project , в которой описывается изменение сеанса SQL Server для группирования сайтов и совместного использования сеансов.
Вот ссылка на статью ASP 101 , в которой описан один из способов обмена сеансами с дочерними сайтами. Не уверен, что это будет работать в вашем случае с другими пулами приложений.
EDIT:
Ах, веб-сад. Да, ваши рабочие процессы не разделяют данные сеанса InProc. Вам нужно использовать внешнего поставщика. StateServer работает нормально. Вам нужно будет включить службу состояний ASP.NET на сервере и обновить свой web.config, чтобы использовать его. Есть несколько вещей, которые следует учитывать при этом:
- Работает ли он на другом сервере?
чем IIS? Нужно включить удаленный
соединения.
- У вас есть несколько веб
серверы? Нужно определить машину
ключ.
- Вы храните объекты в
сессия? Нужно пометить их
сериализации.
Есть много ресурсов онлайн, чтобы помочь с этим, вот пример сообщение в блоге .