Session如何保存在sql数据库中
aspnet中,session默认以inproc模式存储,也就是保存在iis进程中,这样有个优点就是效率高,但不利于为本负载均衡扩展。可以把session信息保存在SQL Server中,据说,该种方式比起inproc性能损失为10%-20%。如何实现呢,主要分两步介绍:
一.这个方法网站找的 具体我也没实现
1、初始化SQL Server中的状态数据库
ASP.NET SQL Server 提供注册工具Aspnet_regsql.exe,用于创建供 ASP.NET 中的 SQL Server 提供程序使用的 Microsoft SQL Server 数据库。Aspnet_regsql.exe位于 /%windir%/Microsoft.NET/Framework/<versionNumber>/aspnet_regsql.exe 目录下。如果麻烦,可以 直接用visual studio tools 的命令提示工具中直接输入aspnet_regsql.exe使用。用法如下:
Aspnet_regsql.exe <options>
可以用如下的语法来添加默认session数据库ASPState
aspnet_regsql.exe -S localhost -U sa -P why1234? -ssadd -sstype p
-S,-U/-P
必须是大写,分别表示数据库服务器,用户名和密码。
-ssadd / –ssremove 参数:
-ssadd表示是添加Session数据库, -ssremove表示移除Session数据库.
sstype 参数:
选项 |
说明 |
t |
将会话数据存储到 SQL Server tempdb 数据库中。这是默认设置。如果将会话数据存储到 tempdb 数据库中,则在重新启动 SQL Server 时将丢失会话数据。 |
p |
将会话数据存储到 ASPState 数据库中,而不是存储到 tempdb 数据库中。 |
c |
将会话数据存储到自定义数据库中。如果指定 c 选项,则还必须使用 -d 选项包括自定义数据库的名称。 |
创建自定义数据库myAppState,可以用如下的语法:
aspnet_regsql.exe -S localhost -U sa -P why1234? -ssadd -sstype c -d myAppState
2、配置webconfig
在webconfig的 <system.web>节下添加如下配置:
<sessionState mode="SQLServer" sqlConnectionString="server=localhost; uid=sa; pwd=123456;"/>
如果在初始化数据库的时候,创建了自定义数据库可以用类似于如下的的配置:
<sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="server=localhost; DataBase=myAspState;uid=sa; pwd=123456;"/>
通过以上两步的设置,已经可以了。详细情况请参阅msdn。
二 .这个方法解决了我的问题
打开VS2005命令提示,输入:aspnet_regsql.exe -?
出现了aspnet_regsql.exe的说明,往下拉会看到"会话状态选项",有一命令:-ssadd(Session state add?) 解释说:添加对 sqlserver 模式会话状态的支持.
估计就是这个了,输入: aspnet_regsql.exe -ssadd
提示:请指定用户ID,或对受信任的连接使用-E
输入如下:aspnet_regsql.exe -ssadd -E
成功.
也可以指定用户名:aspnet_regsql.exe -ssadd -S 数据库实例名(可指定远程服务器) -U 登录名 -P 密码
会提示输入密码.正确输入后也会执行成功.
删除该功能的话执行aspnet_regsql.exe -ssremove -E
就OK了.
然后就是在你项目config下<system.web>节点下修改sessionState 配置为<sessionState mode="StateServer" sqlConnectionString="data source=.;userid=sa;password=svse;Trusted_Connection=yes" timeout="720"/>
注:只需要在你保存的session的服务器数据库执行一次就OK了,并且你所有部署网站的服务器需要打开ASP.NET 状态服务 (ASP.NET state service)
Session如何保存在sql数据库中的更多相关文章
- Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...
- Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:
创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...
- Android - 数据存储 -在SQL数据库中保存数据
对于重复的或结构化的数据,保存到数据库中是很好的选择,比如联系人信息.这里假设你对SQL数据库大体上了解然后帮助你学习Android上的SQLite数据库.在Android数据库上需要用到的API可以 ...
- SQL数据库中临时表、临时变量和WITH AS关键词创建“临时表”的区别
原文链接:https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL数据库中数据处理时,有时候需要建立临时表,将查询后的结果集放到临时表中 ...
- node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中
步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...
- 分布式SQL数据库中部分索引的好处
在优锐课的java学习分享中,探讨了分布式SQL数据库中部分索引的优势,并探讨了性能测试,结果等. 如果使用局部索引而不是常规索引,则在可为空的列上(其中只有一小部分行的该列不具有空值),然后可以大大 ...
- SQL语句:把Excel文件中数据导入SQL数据库中的方法
1.从Excel文件中,导入数据到SQL数据库情况一.如果接受数据导入的表不存在 select * into jd$ from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ...
- 利用session_set_save_handler()函数将session保存到MySQL数据库中
PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx或者是liux上的文件系统的时候,这样的文件系统的文件空间开 ...
- 快速将excel数据保存到Oracle数据库中【转】
我们在工作中,也许会碰到以下情况,客户或者同事发来需要调查的数据,并不是dmp文件,而是excel文件,此时通常是一张表,少量几条记录.最近我恰好碰到了这种情况,所以做了些调查,不敢藏私,拿出来跟大家 ...
随机推荐
- java 工具类 static
http://wenwen.sogou.com/z/q526955586.htm 工具类其实就是提供了一些公共的函数,方便其他类去调用,函数都写成static一方面是因为方便,另一方面是工具类的函数是 ...
- java程序控制KETTLE JOB的执行
有时候我们想在java程序中触发远程服务器上kettle job的执行,并且获得执行结果.kettle的carte提供了远程执行job和transfer的功能. 我使用的kettle是6.1版本,部署 ...
- thinkphp5中Indirect modification of overloaded element of XXX has no effect的解决办法
最近在使用Thinkphp5做foreach循环嵌套的时候报错:Indirect modification of overloaded element of XXX has no effect,网上搜 ...
- java SSH框架
1整体流程: 1:hibernate流程: 2:hibernate使用流程: 2.1:建立用户jar包,导入hibernate相应的jar包 2.2 引入mysql的JDBC驱动包 2.3 在数据库中 ...
- ansible模块学习
ansible的功能: 模块化任务,调用特定的模块,完成特定的任务 基于python语言实现,由paramiko.pyyaml和jinja2三个模块构建 部署简单,agentless,ansible基 ...
- Eclipse Class Decompiler——Java反编译插件(转)
Eclipse Class Decompiler是一款Eclipse插件,整合了多种反编译器,和Eclipse Class Viewer无缝集成,能够很方便的使用插件查看类库源码,进行Debug调试. ...
- eclipse中debug改变变量的值
step1:debug断点到变量的下一行,在debug试图的右上角variables中看到该变量的值: step2:鼠标右键点击str出现下图,选择Change Value... step3:点击Ch ...
- MVC-READ4
internal BuildManagerCompiledView(ControllerContext controllerContext, string viewPath, IViewPageAct ...
- XMLHttpRequest对象的常用方法和属性(相当重要!!!)
方法:写在这里的为必选参数或者经常用到的可选参数 一, open(); 书上解释: 用于设置请求的目标url请求方法, 以及其他参数信息 个人理解: 发送请求的页面在不刷新的情况能将参数传给一个服务器 ...
- PHP GD库
<?php $file = '12.jpg'; //打开图片 $im = imagecreatefromjpeg($file); //设置水印字体颜色 $color = imagecoloral ...