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. BA-通讯总线-百通1419a和9841

    百通1419A线缆的简单介绍: Belden1419A- Belden电缆线1419A 多股导体—低容计算机电缆 FOR EIA RS-232/422 Belden 1419A是24 AWG(7*32 ...

  2. bzoj 1266 1266: [AHOI2006]上学路线route

    1266: [AHOI2006]上学路线route Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 2356  Solved: 841[Submit][S ...

  3. chrome隐身模式无法播放flash的解决办法

    困扰很多天的chrome无法播放flash的问题终于解决了 因为之前一直用隐身模式,一直不能播放flash,重装chrome,重装插件,还是不行 结果今天发现正常模式是可以播放的,所以找了一下chro ...

  4. 设置utf8编码问题

    注意:乱码和request的具体实现类有关,现在已经查到的是RequestDispatcher.forward调用前使用的是org.apache.catalina.connector.RequestF ...

  5. android开发一些小bug

    1.一定要注意findViewId这种方法,尤其是含有多个同样的R.id的名字时,debug时不会当场报错.但随后会报空指针错误 2.List转换为Array能够这样处理: ArrayList< ...

  6. HDU 2054 A==B? 大数

    Problem Description Give you two numbers A and B, if A is equal to B, you should print "YES&quo ...

  7. ThinkPHP5+Redis单例型购物车

    <?php /** * Redis + 单例型购物车 * param $basket 存储商品信息 * param $ins 存储实例化对象 */ namespace lib; use redi ...

  8. BZOJ 3796 后缀数组+KMP

    思路: 写得我头脑发蒙,,, 旁边还有俩唱歌的 抓狂 (感谢lh大爷查错) 首先 1.w是s1的子串 2.w是s2的子串 这两步很好办啊~ 后缀数组一下O(n)就可以搞 重点是 这个:3.s3不是w的 ...

  9. 关于swift构造方法

    switf 中如果遇到这样的错,,,大概错误就是,"必须要调用父类的构造方法",,可是呢,,调用了super.init()  不就是调用了构造方法了吗? 结果上去一查,,结果一名外 ...

  10. 截图 gif 图小工具

    GifCam gyazo gyazo.com Windows 10 中的内置截屏(Win+G)