ASP.Net Session Storage провайдер в 3-х уровневой архитектуре - PullRequest
3 голосов
/ 23 декабря 2010

Я реализую пользовательский поставщик хранилища сеансов в ASP.Net . У нас строгая 3-уровневая архитектура , и поэтому хранилище сеансов должно проходить через бизнес-уровень . Presentation-> Бизнес-> База данных. Доступ к бизнес-уровню осуществляется через WPF. База данных MSSQL.

Что мне нужно (в порядке предпочтения):

  1. Коммерческий / бесплатный / с открытым исходным кодом продукт, который решает эту проблему.
  2. Исходный код 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 через средний уровень веб-службы (бизнес-уровень).

1 Ответ

2 голосов
/ 03 января 2011

Так как не было дано хорошего ответа ...

Одним из решений является не использовать SQL в качестве хранилища, а вместо этого использовать AppFabric.

http://msdn.microsoft.com/en-us/library/ee790859.aspx

Ref. Распределенная государственная служба ASP.Net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...