电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> ASP
Session丢失问题解决方案-ASP教程,ASP应用
作者:网友供稿 点击:28
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

session丢失已经是一种习以为常的问题了,在自己也了解一些如何解决的问题,但是也一直没有机会去用,现在由于新的项目要在b/s下开发,所以不得不让我考虑session的问题。

解决session丢失的问题有两种方法:1)将session保存在一台sate server中。2)将session保存在sql server中。我们使用的数据库是oracle,不想再装一个数据库,所以用了第一种方法。

首先根据网上查的资料对webconfig文件中session部分进行修改。如下:

<sessionstate
  mode="stateserver"
  cookieless="false"
  timeout="240"
  stateconnectionstring="tcpip=10.164.222.122:42424"
  statenetworktimeout="14400"
 />
 <machinekey
  validationkey="78ae3850338bfadce59d8ddf58c9e4518e7510149c46142d7aad7f1ad49d95d4"
  decryptionkey="5fc88dfc24ea123c"
  validation="sha1"
 />

然后再在10.164.222.122 这台电脑上的asp.net state server 服务启动

这样基本上就行了。体验一下。

我用了一个测试程序,在3个小时以后session仍然可用,更绝的是我的电脑都重起了,在其它电脑上打开的网页中session仍然可用。一番体验以后,感觉还真不错。

.net framework 常规参考

<sessionstate> 元素
为当前应用程序配置会话状态设置。

<configuration>
<system.web>
<sessionstate>

<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"/>
必选属性
属性 选项 说明
mode 指定在哪里存储会话状态。
off 指示会话状态未启用。
inproc 指示在本地存储会话状态。
stateserver 指示在远程计算机上存储会话状态。
sqlserver 指示在 sql server 上存储会话状态。

可选属性
属性 选项 说明
cookieless 指定不具有 cookie 的会话是否应用于标识客户端会话。
true 指示应使用不具有 cookie 的会话。
false 指示不应使用没有 cookie 的会话。默认值为 false。
timeout 指定在放弃一个会话前该会话可以处于空闲状态的分钟数。默认值为 20。
stateconnectionstring 指定远程存储会话状态的服务器名称和端口。例如“tcpip=127.0.0.1:42424”。当 mode 为 stateserver 时该属性是必需的。
sqlconnectionstring 为 sql server 指定连接字符串。例如“data source=localhost;integrated security=sspi;initial catalog=northwind”。当 mode 为 sqlserver 时该属性是必需的。
statenetworktimeout 在使用 stateserver 模式存储会话状态时,指定在放弃会话之前 web 服务器和状态服务器之间的 tcp/ip 网络连接空闲的时间(以秒为单位)。默认值为 10。

备注
使用 stateserver 模式

确保运行 asp.net 状态服务的服务器是要存储会话状态信息的远程服务器。该服务与 asp.net 一起安装,其默认位置为 <驱动器>:\systemroot\microsoft.net\framework\version\aspnet_state.exe。
在应用程序的 web.config 文件中,设置 mode=stateserver 并设置 stateconnectionstring 属性。例如,stateconnectionstring="tcpip=sarath:42424"。
使用 sqlserver 模式

在运行 sql server 的计算机(它将存储会话状态)上运行 installsqlstate.sql(默认的安装位置为 <驱动器>:\systemroot\microsoft.net\framework\version)。这将创建一个名为 aspstate 的数据库,该数据库具有新的存储过程并且在 tempdb 数据库中具有 aspstatetempapplications 表和 aspstatetempsessions 表。
在应用程序的 web.config 文件中,设置 mode=sqlserver 并设置 sqlconnectionstring 属性。例如,sqlconnectionstring="data source=localhost;integrated security=sspi;initial catalog=northwind"。
示例
以下示例指定若干会话状态配置设置。

<configuration>
<system.web>
<sessionstate mode="inproc"
cookieless="true"
timeout="20"/>
</sessionstate>
</system.web>
</configuration>
要求
包含于:<system.web>

web 平台:iis 5.0、iis 5.1、iis 6.0

配置文件:machine.config、web.config

配置节处理程序:system.web.sessionstate.sessionstatesectionhandler

请参见
asp.net 配置 | asp.net 设置架构 | sessionstatemodule

作者:  来源:  (责任编辑:webjx)
----------------------------------------------------------收集之二-----------------------------------------------------------------
在windows2003的服务器中的iis6加入了应用程序池来回收一些无用的进程的功能,当由于网站程序的错误或访问量太多的导致的应用程序池会自动回收该进程,防止网站进入“死机”状态,而这时候的应用程序池的回收就会导致session变量被清除,就出现了session变量不见的现象。
为了解决这种在windows2003下才出现的问题,我们在服务端起动asp.net state service服务,并且在系统的machine.config做了一些改动。现在默认的情况下会话状态mode是stateserver。如果您的网站根目录下也配有一个web.config配置文件,请把mode="inproc"改成mode="stateserver",如下代码,就可以防止session变量的丢失:
<sessionstate
mode="stateserver"
stateconnectionstring="tcpip=127.0.0.1:42424"
sqlconnectionstring="data source=127.0.0.1;integrated security=sspi"
cookieless="false"
timeout="30"
/>
+ 注:只适用于支持asp.net的用户。 


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·如何使XP的目录属性出现"安全"选项-ASP教程,系统相关
·创建有个性的对话框之MFC篇(二)-ASP教程,系统相关
·用InstallShield打包ASP程序-ASP教程,ASP应用
·windows server 2003 中 SQL Server 2000 分布式事务 错误解决方法-ASP教程,系统相关
·创建有个性的对话框之MFC篇(一)-ASP教程,系统相关
·DevExpress打印相关代码-ASP教程,打印相关
·File文件控件,选中文件(图片,flash,视频)即立即预览显示-ASP教程,组件开发
·用Windows的文件映射机制,实现大批量数据的快速存储-ASP教程,系统相关
·ADO如何取得数据库中表的字段信息之一
·使用DEVEXPRESS部件打印时标题的处理-ASP教程,打印相关

最新文章
· SQL注入天书 - ASP注入漏洞全接触
·用.net 处理xmlHttp发送异步请求
·asp.net创建文件夹的IO类的问题
·如何实现ASP.NET网站个性化
·关于ASP.NET调用JavaScript的实现
·ASP利用Google实现在线翻译功能
·Asp无组件生成缩略图
·由HTTP 500 Internal server error想到的...
·实例讲解asp抓取网上房产信息
·改mdb为asp所带来的灾难


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号