gpt4 book ai didi

Asp.Net 4.0 在 SqlServer 中存储 session

转载 作者:行者123 更新时间:2023-12-03 12:50:26 24 4
gpt4 key购买 nike

我有共享主机提供的数据库。我想将 session 存储在 sql server 中,但它给我错误:

Unable to use SQL Server because ASP.NET version 2.0 Session State is not installed on the SQL server. Please install ASP.NET Session State SQL Server version 2.0 or above

[HttpException (0x80004005): Unable to use SQL Server because ASP.NET version 2.0 Session State is not installed on the SQL server. Please install ASP.NET Session State SQL Server version 2.0 or above.]
System.Web.SessionState.SqlPartitionInfo.GetServerSupportOptions(SqlConnection sqlConnection) +2147087
System.Web.SessionState.SqlPartitionInfo.InitSqlInfo(SqlConnection sqlConnection) +107
System.Web.SessionState.SqlStateConnection..ctor(SqlPartitionInfo sqlPartitionInfo, TimeSpan retryInterval) +531
System.Web.SessionState.SqlSessionStateStore.GetConnection(String id, Boolean& usePooling) +237
System.Web.SessionState.SqlSessionStateStore.CreateUninitializedItem(HttpContext context, String id, Int32 timeout) +136
System.Web.SessionState.SessionStateModule.CreateUninitializedSessionState() +50
System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) +659
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +96
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

我的 WebConfig 包含以下声明。

    <sessionState mode="SQLServer"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30"
allowCustomSqlDatabase="true"
sqlConnectionString="Data Source=hostingServer;Initial catalog=MyDatabase;User Id=MyUser;password=MyPassword;"
stateNetworkTimeout="60"/>

我已经运行了 aspnet_regsql.exe。它在创建 aspNret_TableNames 之后向我询问服务器和登录详细信息。

请指导我。

最佳答案

我相信您一定使用过 aspnet_regsql.exe 应用程序,它会启动一个向导,然后将各种 aspnet_* 表添加到您的表中。

如果是,则再次重新启动同一向导,然后选择删除选项以从数据库中删除所有这些表。

现在运行这个命令:

aspnet_regsql.exe -ssadd -d <Your Database> -sstype c -S <Server> -U <Username> -P <Password>

这将向您的数据库添加两个表,即 ASPStateTempApplications 和 ASPStateTempSessions。

修改您的 web.config 文件以包含以下配置:

<sessionState
mode="SQLServer"
allowCustomSqlDatabase="true"
sqlConnectionString="Data Source=Server;Initial Catalog=Database;User ID=UserId;Password=Password"
cookieless="false" timeout="20" />

注意:1. 我假设您想将 session 存储在您的应用程序数据库中。如果你想单独维护 session 数据库,那么在没有“-d”参数的情况下运行上面的命令。这将创建一个新的 ASPState 数据库,其中包含我在上面指定的两个表。最后,您可以在配置中指定此数据库的名称。

希望这有帮助:)

关于Asp.Net 4.0 在 SqlServer 中存储 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com