.net session 存放mysql中_[ASP.NET] 将Session值储存于SQL Server中.

一般情况下,我们喜欢使用Session储存我们的变量。Asp.Net提供了下面一些方法储存Session的值:

InProc

State Server

SQL Server

“InProc”表示我们使用传统ASP一样的方法储存Session的值,而且“State Server”则表示使用另外一台主机来储存Session的值。当然我们也能使用SQL Server储存值,我们这篇文章就专门用于讲解这种方法。

运行InstallSqlState.sql文件

首先需要在Winnt\Microsoft.Net中找到InstallSqlState.sql文件,然后在SQL Server 中执行它。在我的机器中,它存在于E:\WINNT\Microsoft.NET\Framework\v1.0.2914\目录中。这个文件是微软自己提供的,里面有很全的SQL语句,修改你的web.config文件,指定Session的mode为SQL Server

将web.config的sessionState部分改成:

创建Asp.Net Web Forms

现在所有的Session变量都储存在数据表中,而不是内存中了。你可打开ASPStateTempSessions表来查看这些Session数据了。

删除这些数据库和表

如果你不喜欢这个数据储存方式,看得实在是不爽,那么你可以把这些表和数据库完全删除掉。这个也不要担心这种删除会影响数据库(因为害怕误删除一些数据),因为微软同样也得供给你们一个删除SQL 文件,名叫UnintallSQLState.sql。它与IntallSQLState.sql一样放在.Net的Config目录中。

另:

2 存储在Windows服务中

启动asp.net  state  service  服务(net  start  aspnet_state)

修改Web.config

stateConnectionString=  "tcpip=127.0.0.1:42424  "  /  >

3 存储在数据库中

在microsoft  sql  server  query  analyzer  中运行installsqlstate.sql,这个文件在     "C:\WINNT\Microsoft.NET\Framework\v1.1.4322"下面找

修改Web.config

sqlConnectionString=  "server=127.0.0.1;UID=sa;PWD=secret  "  /  >

重启SQL  server和SQL  Server Agent服务.

可以用下面的SQL  查询会话

select  *  from  AspStateTempSessions

===============================

配置SQL Server Session方法

以下过程是在Win 2003 SP2 + IIS 6.0, ASP.NET 2.0, SQL Server 2005下进行的。

1. 安装Session数据库

到Framework目录

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

运行下面的命令:

aspnet_regsql.exe -ssadd -sstype c -d [DB]  -S [Server] –E

-E是使用Windows认证,也可以使用数据库认证:

aspnet_regsql.exe -ssadd -sstype c -d [DB]  -S [Server] –U [User Name] – P [Password]

在指定的SQL Server服务器的指定数据库中建立Session数据库,可以是个单独的数据库,也就是可以是程序所用的数据库,也可以不给名字,那么会使用一个默认的数据库名称。创建完成后,在Sql Server里给上相应的帐号权限。

2. 修改web.config:

cookieless="false"

timeout="20" />

如果使用默认的数据库名称,如下:

cookieless="false"

timeout="20" />

这样,程序的Session就会存储到数据库中了,有一点需要注意的是,这样配置以后,存到Session中的对象必须是可序列化的,如果是自定义的类,那么就要加上[Seriablizable]属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值