Ruslan_Ataev
Дата: 26.04.2007 09:14:24
Я решил изучить вопрос сохранения сессий в Sql Server'e, и сразу же был разочарован тем, что параметр
sqlConnectionString не принимает значения каталога/базы данных в соответствующем разделе конфигурационного файла sessionState. (Обращается только к базе ASPState).
Вместо того, чтобы добавить в существующую на моём сайте базу данных нескольких новых таблиц и хранимых процедур, я должен заплатить хостинг-компании за заведение специальной базы ASPState для хранения состояния?
Мдя. В Microsoft настолько оторваны от реального веб-рынка, что даже не знают о том, что за каждую новую базу хостинги требуют денег от разработчиков?
Ruslan_Ataev
Дата: 26.04.2007 12:24:06
Всё, сделал. Работает, но как-то странно.
Взял для развёртывания скрипт InstallSqlStateTemplate.sql, подставив имя реальной базы.
Действительно, в таблице ASPTempStateSessions появляются записи при каждом открытии окна обозревателя.
Но вот если создать объект программно
...
Session["mySession"] = DateTime.Now;
..., то такая сессия не сохраняется в таблице. А почему, собственно?
Хотя доступ к ней имеется:
...
Label1.Text = ((DateTime) Session["mySession"]).ToStrnng();
...
В таблице ASPTempStateSessions нет даже ключа-поля для значения "mySession". Что же это выходит, объект хранится в рабочем процессе приложения ASP.NET?
Почему так всё запутали, в MSDN нет даже элементарного примера, хотя сохранение состояния - главная проблема бизнес-решений!
Не зря катил я бочку на Microsoft; зажимают они информацию совершенно бессмысленно в вопросе сохранения состояния в SQL Servere.