ASP.NET Session存储

debrogile 2010-01-28 05:56:26
http://blog.csdn.net/dtxzhs/archive/2008/10/31/3182283.aspx
刚看了这个贴子,结合手头的工作有个疑问像高手们请教下。

我们的IIS和数据库不是直连的,中间通过一层中间件连接,这样的话,还有办法将Session存储在数据库中么?

如果可以,该怎么做?
...全文
153 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjyydd1 2010-01-29
  • 打赏
  • 举报
回复
session在asp.net中不能使用吧!
sunhahaha2 2010-01-29
  • 打赏
  • 举报
回复
Mark #3 #7
liaolian9948 2010-01-29
  • 打赏
  • 举报
回复
还有一种方法来对session保存数据库

aspnet_regsql.exe -S ServerName\InstanceName -U User -P Password -d DBName -ssadd -sstype c

此命令将在ServerName\InstanceName建立DBName的数据库, 用户存储Session的数据库. 此数据库中包含了存储过程和用户表. 同时在SQL Server代理 -> 作业 中也加入了相应的作业.

然后在Web.config中设置好配置信息:

mode="SQLServer" sqlConnectionString="data source=ServerName\InstanceName; Integrated Security=SSPI;"



debrogile 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 tyzs2001 的回复:]
首先我不是直接连接数据库的,那stateConnectionString="tcpip=服务器ip:42424" 没法配的啊
这个是在web.config中配置的,怎么没办法配置呢?难道楼主不知道数据库所在的服务器?
[/Quote]

IIS-AS-SQL Server
连接方式是这样的,AS用来转发IIS的请求以及将结果返回给IIS
为了安全IIS是和SQL Server不通的
小鹏 2010-01-29
  • 打赏
  • 举报
回复
当然可以
debrogile 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ynsky 的回复:]
把session当成变量使用就好了.
[/Quote]
能否详细讲解下呢?

另外11楼有错误,是sqlConnectionString=" sql connection string "没办法配

在线等!
khjian 2010-01-29
  • 打赏
  • 举报
回复
帮顶
tyzs2001 2010-01-29
  • 打赏
  • 举报
回复
首先我不是直接连接数据库的,那stateConnectionString="tcpip=服务器ip:42424" 没法配的啊
这个是在web.config中配置的,怎么没办法配置呢?难道楼主不知道数据库所在的服务器?
YnSky 2010-01-29
  • 打赏
  • 举报
回复
把session当成变量使用就好了.
lilin8905 2010-01-29
  • 打赏
  • 举报
回复
关注
bychgh 2010-01-29
  • 打赏
  • 举报
回复
帮顶
debrogile 2010-01-29
  • 打赏
  • 举报
回复
先谢谢下各位,不过都说可行,却没说怎么做啊
首先我不是直接连接数据库的,那stateConnectionString="tcpip=服务器ip:42424" 没法配的啊

我的想法是我自己建个表存储session,但这样的话如何对这个表操作呢,什么时候操作呢?不知道IIS是怎么做的
chen_ya_ping 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 koukoujiayi 的回复:]
只要是能够连接数据库,就能把数据保存到数据库里!!


[/Quote]
实在
  • 打赏
  • 举报
回复
如果把SESSION放到数据库中,那是否还需要同时在此表中建立使用这个SESSION的ID,以及还需要考虑该用户是否多次登陆,设计的东西有点多 ,大家可以讨论下
newdigitime 2010-01-28
  • 打赏
  • 举报
回复
可以把session放在SQL,每次读或写session,都和读普通数据一样,要连接数据库.只不过配置好后,系统是在后台自动读写的
wuyq11 2010-01-28
  • 打赏
  • 举报
回复
可以,操作数据库就可保存
StateServer
设置为将Session存储在独立的状态服务中。通常是aspnet_state.exe进程.
SQLServer
设置将Session存储在SQL Server中。
<sessionState
mode="StateServer"
stateConnectionString="tcpip=服务器ip:42424"
cookieless="false"
timeout="60"/>

yang_5 2010-01-28
  • 打赏
  • 举报
回复
学习中
baiduu 2010-01-28
  • 打赏
  • 举报
回复
MARK & BD
ms2011 2010-01-28
  • 打赏
  • 举报
回复
技术真多啊,希望能保存,不然只好开启.net状态服务了
wosizy 2010-01-28
  • 打赏
  • 举报
回复
只要能连接数据库 就OK
如下是Web.config配置Session:

<configuration>
<system.web>
<sessionState mode=" Off | InProc | StateServer | SQLServer "
cookieless=" true | false "
timeout=" number of minutes "
stateConnectionString=" tcpip=server:port "
sqlConnectionString=" sql connection string "
stateNetworkTimeout=" number of seconds " />
</system.web>
</configuration>

当mode="Inproc"时,服务器的Session存储在IIS进程中,当IIS关闭,重启时,这些Session信息就会丢失,但这种模式最大的好处就是性能提高。

sqlserver:
当mode="sqlserver"时,服务器的Session就是存储到Sql server中建立一个存储Session的数据库。在
%windir%\Microsoft.NET\Framework\v2.0.50727 下有个名为: InstallSqlState.sql 的sql脚本文件. 这个脚本是专门用来建存储Session的数据库以及一个维护Session信息数据库的SQL Server代理作业的.

加载更多回复(2)

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧