Я исследую и пробую кое-что в отношении автоматического сохранения переменных сеанса в SQL Server.Я нашел эту ссылку, обсуждающую состояние сеанса SQL Server (назовите его «Вариант 1»), и эту ссылку, обсуждающую Постоянное состояние сеанса SQL Server (назовите его «Вариант 2»).
Основное различие заключается в том, что с вариантом 1, если машина, на которой запущен SQL Server, выключена, данные сеанса теряются, в отличие от варианта 2, который сохраняет его.В варианте 1 кажется, что процесс использует базу данных tempdb, тогда как вариант 2, похоже, сохраняет данные сеанса с помощью базы данных ASPState.
У меня есть несколько вопросов, которые мне не кажутсянайти ответы на следующие вопросы:
- В первом варианте в статье обсуждается конфигурация, необходимая в веб-конфигурации, в отношении тега .Это не добавляется к постоянному случаю (вариант 2).Должен ли быть одинаковым в обоих случаях?
Я попробовал второй вариант, так как он кажется более подходящим для моего сценария случая.Я начал с загрузки PersistSQLState.exe, которая просто самостоятельно извлекает сценарии InstallPersistSqlState.sql и UninstallPersistSqlState.sql.Я запустил InstallPersistSQLState.sql, который успешно завершился, и создал базу данных «ASPState» в SQL Server.Я установил тег , используя формат, указанный в варианте 2, как описано в пункте 1) выше.
После запуска приложения я получил следующую ошибку:
"Невозможно использовать SQL Server, поскольку на сервере SQL не установлено ни состояние сеанса ASP.NET версии 2.0, ни ASP.NET не имеет разрешения на запуск хранимой процедуры dbo.TempGetVersion. Если схема состояния сеанса ASP.NET не установлена, установите SQL Server состояния сеанса ASP.NET версии 2.0 или выше. Если схема была установлена, пожалуйста,предоставьте разрешение на выполнение хранимой процедуры dbo.TempGetVersion либо идентификатору пула приложений ASP.NET, либо пользователю Sql Server, указанному в атрибуте sqlConnectionString. "
Это описывает 2 вещи: Asp.NetВозможно, состояние сеанса версии 2.0 еще не установлено, и процесс не может запустить хранимую процедуру dbo.TempGetVersion (по разным причинам).
Хранимая процедура dbo.TempGetVersion не существует в базе данных ASPState, созданной сценарием InstallPersistSqlState.sql.Действительно ли эта хранимая процедура связана с tempdb (непостоянной) и, следовательно, почему схема ASPState не включает ее?
Является ли это Asp.Net версии 2.0Состояние сеанса что нужно установить?Если так, то каков процесс, которому нужно следовать ?!Должен ли он быть установлен в базе данных ASPState после запуска сценария InstallPersistSQLState.sql?Если нет, что именно нужно сделать?Нет ничего, связанного с этим ".exe" ни в Варианте 1, ни в Варианте 2!
Наконец, я также попытался удалить постоянный случай, вместо этого запустив сценарии, связанные с Вариантом 1 (непостоянные).В этом случае сценарии, представленные в первой ссылке выше, не работают;возвращает 2 ошибки с не найденными заданиями?!.Кто-нибудь знает, почему это происходит, и существуют ли правильные сценарии в каком-либо онлайн-месте?!
Любая помощь будет принята, поскольку документация по этому вопросу кажется плохой.