Как использовать режим состояния сеанса: SQL Server с VS2010 - PullRequest
1 голос
/ 16 июня 2011

Я хочу использовать это состояние сеанса, потому что Inproc ненадежен. Мне нужно установить этот режим в конфигурационном файле, но не знаете как .. кто-нибудь может мне помочь?

Исключение, которое я получил от инструмента aspnet_regsql

xception:

Невозможно подключиться к базе данных SQL Server.


Сведения об ошибке

System.Web.HttpException (0x80004005): невозможно подключиться к базе данных SQL Server. ---> System.Data.SqlClient.SqlException (0x80131904): во время установки соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning () в System.Data.SqlClient.TdsParser.Connect (ServerInfo serverInfo, SqlInternalConnectionTds connHandler, логическое ignoreSniOpenTimeout, Int64 timerExpire, логическое шифрование, логическое доверие trustServerCert, логическое интегрированное обеспечение безопасности) в System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (ServerInfo serverInfo, String newPassword, логическое значение ignoreSniOpenTimeout, тайм-аут TimeoutTimer, SqlConnection owningObject) в System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (ServerInfo serverInfo, String newPassword, логическое значение redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, время ожидания TimeoutTimer) в System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist (SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, логический redirectedUserInstance) в System.Data.SqlClient.SqlInternalConnectionTds..ctor (идентификатор DbConnectionPoolIdentity, SqlConnectionString connectionOptions, объект providerInfo, строка newPassword, SqlConnection owningObject, логический redirectedUserInstance) в System.Data.SqlClient.SqlConnectionFactory.CreateConnection (параметры DbConnectionOptions, объект poolGroupProviderInfo, пул DbConnectionPool, DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnection owningConnection, пул DbConnectionPool, параметры DbConnectionOptions) в System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection externalConnection, DbConnectionFactory connectionFactory) в System.Data.SqlClient.SqlConnection.Open () в System.Web.Management.SqlServices.GetSqlConnection (Строковый сервер, Строковый пользователь, Строковый пароль, Булево доверенное значение, Строка connectionString) в System.Web.Management.SqlServices.GetSqlConnection (Строковый сервер, Строковый пользователь, Строковый пароль, Булево доверенное значение, Строка connectionString) в System.Web.Management.SqlServices.SetupApplicationServices (Строковый сервер, Строковый пользователь, Строковый пароль, Логическое доверенное значение, Строковое connectionString, Строковая база данных, String dbFileName, Функции SqlFeatures, Булева установка) в System.Web.Management.ConfirmPanel.Execute ()

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Если у вас нет базы данных сеансов создания в sql, вам сначала нужно запустить инструмент для ее создания, используя инструмент aspnet_regsql.exe .

DATABASENAME = AnyNameOfServerState
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -ssadd -sstype c -d DATABASENAME -E

Еще для этого инструмента: http://msdn.microsoft.com/en-us/library/ms229862(VS.80).aspx

Во-вторых, вы можете подключиться с помощью встроенной защиты и не использовать имя пользователя и пароль. Установите это для соединительных строк

<add name="SqlState" connectionString="Data Source=localhost;DataBase=AnyNameOfServerState;Integrated Security=True" providerName="System.Data.SqlClient"/>

Это перейти к system.web

<sessionState mode="SQLServer" sqlConnectionString="SqlState" allowCustomSqlDatabase="true" cookieless="false" timeout="20"/>

Еще немного подробностей. Если вы зайдете в свой сетевой каталог, вы увидите список файлов с расширением .sql. Одним из них является InstallSqlState.sql, который запускает инструмент для создания базы данных. Если вы откроете его, вы увидите, что запускается.

0 голосов
/ 16 июня 2011

Вы также можете использовать StateServer. Вы можете следовать пошаговой инструкции здесь

http://dotnetguts.blogspot.com/2009/06/steps-for-session-inproc-mode-to.html

Я надеюсь, что вы знаете плюсы и минусы каждого из состояний сеанса, чтобы вы могли выбрать подходящий для вашего приложения.

...