如何使用会话状态模式:使用VS2010的SQL Server

我想使用该会话状态,因为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()at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo,SqlInternalConnectionTds connHandler,Boolean ignoreSniOpenTimeout,Int64 timerExpire,布尔加密,布尔trustServerCert,布尔integratedSecurity)在System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo,字符串newPassword,布尔ignoreSniOpenTimeout ,System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection拥有对象,System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo,String newPassword,Boolean redirectedUserInstance,SqlConnection owningObject,SqlConnectionString connectionOptions,TimeoutTimer超时) TimeoutTim 在System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity身份,SqlConnectionString connectionOptions,对象providerInfo,字符串newPassword,SqlConnection拥有对象,布尔redirectedUserInstance)在System.Data.SqlClient.SqlConnectionFactory上的超时,超时,SqlConnectionString connectionOptions,字符串newPassword,布尔redirectedUserInstance) .CreateConnection(DbConnectionOptions options,Object poolGroupProviderInfo,DbConnectionPool pool,DbConnection owningConnection)at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection,DbConnectionPool pool,DbConnectionOptions options)at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection 拥有连接)在System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory连接工厂)在System.Data.SqlClient.SqlConnection.Open()在System.Web.Management.SqlServices.GetSqlConnection(字符串服务器,字符串用户,字符串密码System.Web.Management.SqlServices.SetupApplicationServices(字符串服务器,字符串用户,字符串用户,字符串密码,布尔信任,字符串连接字符串)上System.Web.Management.SqlServices.GetSqlConnection(布尔信任,字符串connectionString) (System.Web.Management.ConfirmPanel.Execute())中的字符串密码,布尔值可信,字符串连接字符串,字符串数据库,字符串dbFileName,SqlFeatures功能,布尔值安装)


如果您没有在sql上创建会话数据库,则需要先使用aspnet_regsql.exe工具运行一个工具来创建它。

DATABASENAME = AnyNameOfServerState
C:WINDOWSMicrosoft.NETFrameworkv2.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,这是工具运行来创建数据库的那个。 如果你打开它,你可以看到什么运行。


你也可以使用一个StateServer。 您可以按照此处的分步指南进行操作

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

我希望你知道每个会话状态的赞成/反对,所以你可以为你的应用程序选择正确的。

链接地址: http://www.djcxy.com/p/56703.html

上一篇: How to use Session state mode : SQL Server with VS2010

下一篇: Login failed for user