首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQLServer SessionState

SQLServer SessionState
EN

Stack Overflow用户
提问于 2013-03-05 20:41:00
回答 3查看 2.6K关注 0票数 1

我正在使用SessionState的InProc模式,但我的应用程序由于应用程序池的回收而不断重启,因此我正在丢失当前登录用户的会话。我想更改为将其保存在数据库中。我这样编辑我的webconfig

代码语言:javascript
运行
复制
<sessionState mode="SQLServer" timeout="20" allowCustomSqlDatabase="true"
    sqlConnectionString="Data Source=Server;integrated security=True;Initial Catalog=SerialTracker;"
    cookieless="false" />

我必须为会话状态或新数据库创建一些表吗?我的主机是共享的,所以我不能访问管理控制台或其他任何东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-05 21:21:30

有一个step by step HowTo可用here。您似乎需要在数据库上运行一个名为InstallSqlState.sql的SQL文件。

票数 2
EN

Stack Overflow用户

发布于 2013-05-23 22:57:15

是的,您必须使用您可以在%系统驱动器号%/Microsoft.NET/ InstallSqlState.sql /%v中找到的框架脚本。

示例: c:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallSqlState.sql

还要考虑脚本创建的AspState数据库,默认情况下,该数据库不会保留会话数据:这些数据将存储在临时数据库表中。

如果这些对你没有好处,有一种方法可以将数据保存在AspState DB中,看看here

票数 1
EN

Stack Overflow用户

发布于 2015-06-19 05:20:59

从2015年开始,您不需要运行脚本,Universal Provider包使用实体框架来创建它需要的表。

我使用NuGet/Package Manager安装了'Microsoft Providers‘包(当前版本为2.0.0),该包还安装了ASP.NET:

安装-打包Microsoft.AspNet.Providers

它会在您的web.config文件中插入一些(注释的)项。我按照注释中的说明将“InProc”更改为“Custom”,并使用到数据库的连接字符串对其进行设置。在第一次运行时,它在我的数据库中创建了一个'Sessions‘表,并将会话数据存储在其中。

我不确定如果你的项目中已经有了一个'Sessions‘表,它会做什么。

ps -I删除了它插入的'profile','membership‘和'rolemanager’标签,因为我只需要存储会话内容,而不需要存储asp标识的其余部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15224075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档