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里面

在html中嵌入C#的代码,直接使用<% c#代码 %>就行了

要么在页面跳转前把值赋给变量就行了

有form的,需要把调整form的action地址,下一步才去找onclick等事件的地址

没有form包含的,直接去按钮中找onclick事件的地址

会话变量通过存储在

HttpContext.Session属性公开的

SessionStateItemCollection对象中。

通过HTML隐藏控件也可以实现页面间值的传递,但是比较麻烦,还是session比较方便

不同浏览器会产生新的会话,因为session是根据发给浏览器的cookie来产生的,不同浏览器的cookie不一样

下面的这种写法是没有冒号的,注意!!

  1. <%=Application["online"]%>
    
    HttpCookie cc =newHttpCookie("name","spike");
    HttpCookie cc =newHttpCookie("passwrod","spike");
    Response.SetCookie(cc.name);
    Response.SetCookie(cc.password);

ASP.NET-Session cooike的更多相关文章

  1. ASP.NET Session 详解

    阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 了解ASP/ASP.NET的Session模型 了 ...

  2. ASP.NET Session的共享

    注: 在ashx文件中使用Session 首先添加引用 using System.Web.SessionState; 实现接口 public class XXXX: IHttpHandler ==&g ...

  3. 使用SQL Server存储ASP.NET Session变量

    创建和配置ASP.NET Session状态数据库 在基于NLB(网络负载平衡)环境下的ASP.NET Web应用程序开发,我们需要将Session存储在数据库中供多个Web应用程序调用,以下为配置方 ...

  4. ASP.NET Session丢失的情况

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 现在我就把原 ...

  5. ASP.NET Session的七点认识

    原文:http://kb.cnblogs.com/page/108689/ ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Sessi ...

  6. [ASP.NET] Session的了解

    ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Session的理解: ASP.NET Session的七点认识之一 对于值类型的变量 ...

  7. [转]ASP.NET Session 详解

    来源:http://www.webshu.net/jiaocheng/programme/ASPNET/200606/1381.html 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解 ...

  8. ASP.NET Session丢失的解决方案

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的.现在我就把原因 ...

  9. ASP.NET Session丢失问题原因及解决方案

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. ASP.NE ...

  10. ASP.NET Session的实现原理分析

    ASP.NET Session的实现原理分析 用户向服务器提交请求时,服务器都会给每个用户分配一个SessionId,保存在用户浏览器的Cookies中,SessionId是全局的,也就是说只要Coo ...

随机推荐

  1. java map实现二级联动查询(省市区下拉列表查询)

    1.Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省市级联选择框,当选择省份信息 ...

  2. redis代码解析-dictionary类型

    dict本质上是为了解决算法中的查找问题(Searching),一般查找问题的解法分为两个大类:一个是基于各种平衡树,一个是基于哈希表. redis中的dict传统的哈希算法类似,它采用某个哈希函数从 ...

  3. Cocos2d-x碰撞检測

    假设不适用Box2D物理引擎.那么要进行Cocos2d-x的碰撞检測那我们的方法往往就是进行"矩形和点"."矩形和矩形"这样粗略的碰撞检測.我们一般採取开启sc ...

  4. 使用Android design support library在Eclipse和Android Studio

    背景:为了在低版本号下使用Android 5.0的一些新特新 Eclipse篇: 1.将Android Manager中的Android support library升级到最新,我的为22.2.1' ...

  5. 关于部门后端所有转向java前初步设想

    Java服务有些什么形式?眼下来看主要是下面几类: 1.  执行在Web应用server的Servlet 2.  Thrift.PB.Avro等相似框架写的java服务 3.  WebService( ...

  6. svn 服务器的搭建

     SVN服务器运行模式:模式1:svn服务器单独运行  监听: 3690端口    访问: svn://IP模式2: svn 服务器+ apache   : 80 端口  访问: http://IP  ...

  7. Directx Matrix.PerspectiveFovLH Matrix.PerspectiveFovRH的理解

    该函数一个四个参数public static Matrix PerspectiveFovLH ( float fieldOfViewY, float aspectRatio, float znearP ...

  8. h5-登录

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  9. Huatuo's Medicine

    Huatuo's Medicine Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others ...

  10. JQuery (总结)

    延迟触发事件 Ajax异步请求数据 Jquery事件: Focus获得焦点 blur失去焦点 Change内容在变化的时候 Click点击事件 ---------------------------- ...