Я реализую пользовательский поставщик хранилища сеансов в ASP.Net . У нас строгая 3-уровневая архитектура , и поэтому хранилище сеансов должно проходить через бизнес-уровень . Presentation-> Бизнес-> База данных. Доступ к бизнес-уровню осуществляется через WPF. База данных MSSQL.
Что мне нужно (в порядке предпочтения):
- Коммерческий / бесплатный / с открытым исходным кодом продукт, который решает эту проблему.
- Исходный код SqlSessionStateStore (пользовательское хранилище сеансов) (не ODBC-образец в MSDN), который я могу изменить для использования среднего уровня.
Я пытался просмотреть исходный код .Net через Reflector, но код не может быть использован.
Примечание: я понимаю, как это сделать. Я ищу рабочие образцы, желательно, чтобы они хорошо работали при большой нагрузке. Образец ODBC в MSDN не использует (новые?) Хранимые процедуры, используемые сборкой в SqlSessionStateStore - я хотел бы использовать их, если это возможно (уменьшает трафик).
Edit1: Чтобы ответить на вопрос Саймонса о дополнительной информации:
ASP.Net Session () - объект может храниться либо в InProc, либо в ASP.Net State Service, либо на SQL-сервере. В безопасной трехслойной модели уровень представления (веб-сервер) не имеет прямого / физического доступа к уровню базы данных (SQL-сервер). И даже без физических ограничений, с архитектурной точки зрения вы можете этого не хотеть. InProc и ASP.Net State Service не поддерживают балансировку нагрузки и не имеют отказоустойчивости. Поэтому единственный вариант - получить доступ к SQL через средний уровень веб-службы (бизнес-уровень).