ASP.NET-Session cooike
Application 、Cookie和 Session 两种会话有什么不同
答:Application是用来存取整个网站全局的信息,而Session是用来存取与具体某个访问者关联的信息, Session是保存在服务器端的,比较安全,可以放大数据。Cookie是保存在客户端的,机密信息不能保存在Cookie中,只能放小数据;
Session不要放过多的信息,由于IIS的问题,有可能会丢Session的信息(IIS在负载高的时候,会丢失Session的信息)
session是用于页面间传值用的
关于SessionID
Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器的时候,会由服务器生成一个唯一的sessionId,用该sessionId为标识符来存取服务端的session存储空间,而sessionId’这一数据则是保存到客户端,用cookie保存的,用户提交页面的时候,会将这一sessionId提交到服务器端,来存取session数据,服务器也可以通过URL重写的方式来传递sessionId的值,不是完全依赖于cookie。
Session有什么重大BUG,微软提出了什么方法加以解决?(常考)
iis中由于有进程回收机制,系统繁忙的话Session会丢失,IIS重启也会造成Session丢失。这样用户就要重新登录或者重新添加购物车、验证码等放到Session中的信息。可以用State server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。但是(一定要写上,这样才够拽)我认为这不是Bug,只能说是In-Proc方式存储Session的缺陷,缺陷是和Bug不一样的,In-Proc方式存储Session会由服务器来决定什么时候释放Session,这是By Design,In-Proc方式不满足要求的话完全可以用StateServer和数据库的方式。
相信几乎所有学过asp.net的朋友都遇到过这个问题:未将对象引用设置到对象的实例。这个问题在我刚开始学习这方面的知识的时候真有点让崩溃的感觉,当时都快打击死我了,不过经过了以后,反而有一种明朗的小激动,呵呵,问题是进步的阶梯,此乃真理。下面,就来看一下到底都有哪些原因会造成这个问题的出现(这里有我自己遇到的问题,也有在网上查阅的资料)
一、数据库方面
1、ViewState 对象为Null。
2、DateSet 空。
3、sql语句或Datebase的原因导致DataReader空。
4、声明字符串变量时未赋空值就应用变量。
5、未用new初始化对象。
6、Session对象为空。
7、对控件赋文本值时,值不存在。
8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、使用FindControl时,控件不存在却没有做预处理。
10、重复定义造成未将对象引用设置到对象的实例错误.
二、应用程序方面
(1)所设置的变量为空值或没有取到值,一般出现在传递参数的时候出现这个问题,也会在使用DataGrid或gridview或datalist等数据控件时出现.
(2)控件名称与codebehind里面的没有对应
(3)未用new初始化对象
(4)在程序中所引用的控件不存在
解决方法:
(1)使用try..catch...finally捕捉错误,或直接用response.write()输出所取的变量值
(2)查看代码中是否存在未初始化的变量
三、数据库连接
SqlConnection.Open 未将对象引用设置到对象的实例
在使用VS2003开发 ASP.NET程序时候 有时候操作 SqlConnection对象的Open()方法时候会出现
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
。。。。
conn.Open();
......
跟踪调试也肯定可以确定 对conn进行new 操作 但是程序经常在这个地方报错,但是有时候重启服务器或者重启IIS有能正常使用了。 怎么调试也找不到问题 那么这个时候可能是你本机上安装的.NET FRAMEEWORK 框架有问题,可能没有没有安装SP1.1补丁
需要打NETFRAMEEWORK1.1 SP1的补丁,到微软官方网站下载安装后就好了。
四、一般出现NullReferenceException异常的情况:
1、对象所在的命名空间没有引用
2、对象没有实例化
3、出现异常,实例化失败对象为 null
五、IIS 扛不住的时候,也会出现上面的错误。
当应用程序的用户访问量超过它能承受的范围之后,就会出错。
改善你的程序,使用缓存,尽量减少与数据库交互的次数。
六、查看是否重置了DataSet引用
请大家好好查查自己的代码,是不是在其他地方重新引用了,在DataSet被设置成全局对象也会出现这种错误提示。
七、最后
甚至,仅仅因为网站里面DAL的dll文件失效,业务层实例化不了IDAL里面的对象也会出错。
当你发现所有的方法不行时,打上.netframework的补丁
总结
暂时就这么多了吧,虽然错误的表现形式大致相同,但是其原因却是五花八门,学习就要像中医一样,治标更要治本,学习要知其然还要知其所以然。
要么放在pageload里面
要么在页面跳转前把值赋给变量就行了
有form的,需要把调整form的action地址,下一步才去找onclick等事件的地址
没有form包含的,直接去按钮中找onclick事件的地址
会话变量通过存储在
HttpContext.Session属性公开的
SessionStateItemCollection对象中。
通过HTML隐藏控件也可以实现页面间值的传递,但是比较麻烦,还是session比较方便
不同浏览器会产生新的会话,因为session是根据发给浏览器的cookie来产生的,不同浏览器的cookie不一样
下面的这种写法是没有冒号的,注意!!
<%=Application["online"]%> HttpCookie cc =newHttpCookie("name","spike");
HttpCookie cc =newHttpCookie("passwrod","spike");
Response.SetCookie(cc.name);
Response.SetCookie(cc.password);
ASP.NET-Session cooike的更多相关文章
- ASP.NET Session 详解
阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 了解ASP/ASP.NET的Session模型 了 ...
- ASP.NET Session的共享
注: 在ashx文件中使用Session 首先添加引用 using System.Web.SessionState; 实现接口 public class XXXX: IHttpHandler ==&g ...
- 使用SQL Server存储ASP.NET Session变量
创建和配置ASP.NET Session状态数据库 在基于NLB(网络负载平衡)环境下的ASP.NET Web应用程序开发,我们需要将Session存储在数据库中供多个Web应用程序调用,以下为配置方 ...
- ASP.NET Session丢失的情况
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 现在我就把原 ...
- ASP.NET Session的七点认识
原文:http://kb.cnblogs.com/page/108689/ ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Sessi ...
- [ASP.NET] Session的了解
ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Session的理解: ASP.NET Session的七点认识之一 对于值类型的变量 ...
- [转]ASP.NET Session 详解
来源:http://www.webshu.net/jiaocheng/programme/ASPNET/200606/1381.html 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解 ...
- ASP.NET Session丢失的解决方案
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的.现在我就把原因 ...
- ASP.NET Session丢失问题原因及解决方案
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. ASP.NE ...
- ASP.NET Session的实现原理分析
ASP.NET Session的实现原理分析 用户向服务器提交请求时,服务器都会给每个用户分配一个SessionId,保存在用户浏览器的Cookies中,SessionId是全局的,也就是说只要Coo ...
随机推荐
- java map实现二级联动查询(省市区下拉列表查询)
1.Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省市级联选择框,当选择省份信息 ...
- redis代码解析-dictionary类型
dict本质上是为了解决算法中的查找问题(Searching),一般查找问题的解法分为两个大类:一个是基于各种平衡树,一个是基于哈希表. redis中的dict传统的哈希算法类似,它采用某个哈希函数从 ...
- Cocos2d-x碰撞检測
假设不适用Box2D物理引擎.那么要进行Cocos2d-x的碰撞检測那我们的方法往往就是进行"矩形和点"."矩形和矩形"这样粗略的碰撞检測.我们一般採取开启sc ...
- 使用Android design support library在Eclipse和Android Studio
背景:为了在低版本号下使用Android 5.0的一些新特新 Eclipse篇: 1.将Android Manager中的Android support library升级到最新,我的为22.2.1' ...
- 关于部门后端所有转向java前初步设想
Java服务有些什么形式?眼下来看主要是下面几类: 1. 执行在Web应用server的Servlet 2. Thrift.PB.Avro等相似框架写的java服务 3. WebService( ...
- svn 服务器的搭建
SVN服务器运行模式:模式1:svn服务器单独运行 监听: 3690端口 访问: svn://IP模式2: svn 服务器+ apache : 80 端口 访问: http://IP ...
- Directx Matrix.PerspectiveFovLH Matrix.PerspectiveFovRH的理解
该函数一个四个参数public static Matrix PerspectiveFovLH ( float fieldOfViewY, float aspectRatio, float znearP ...
- h5-登录
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- Huatuo's Medicine
Huatuo's Medicine Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others ...
- JQuery (总结)
延迟触发事件 Ajax异步请求数据 Jquery事件: Focus获得焦点 blur失去焦点 Change内容在变化的时候 Click点击事件 ---------------------------- ...