本人应当算是初学asp.net,现在遇到了Session方面的问题。在Global.asax中声明一个全局变量a,在Session_Start中加一,在Session_End中减一。不过在用Default.aspx中显示a的值时,却发现:
1.在IE中,不管打开几个窗口或者进行刷新,都是1。
2.在Firefox和Opera中,刷新以下或者新建一个窗口打开default.aspx之后a的值都在不停增加。并且,经过输出Session.IsNewSession发现Firefox和Opera中的确是不停地新建Session。为什么会有这种不同,怎样能够较好地保持一致?

解决方案 »

  1.   

    - -! 楼上的.. 他明显是在记录再线人数... 怎么用 cookie 阿..
      

  2.   

    存储客户端数据时,我会采用加密cookie的方法。这里只是测试一下Session。用的是在线人数统计的简单案例。
      

  3.   

    >>>在Firefox和Opera中,刷新(????)以下或者新建一个窗口打开default.aspx之后a的值都在不停增加?????你的Firefox和Opera打开允许使用cookie了么?象这样的情形,很大的可能是因为浏览器没送回Session cookie,所以不断生成新的Session或者使用cookieless Sessionhttp://support.microsoft.com/default.aspx?scid=kb;en-us;307598
      

  4.   

    To saucer(思归):全都启用cookie了,并且访问需要cookie的站点都没有问题。另外,本来是想考虑使用cookieless的,不过url后面跟着一串XXX实在是……
    :)
      

  5.   

    if you are so sure, then try to use Fiddler to examine what the raw requests are, and specifically check for cookie informationhttp://www.fiddlertool.com/fiddler/
      

  6.   

    To saucer(思归):谢谢提供这么好用的工具。经过分别对Firefox和Opera进行检测发现:
    如果通过设定127.0.0.1:8888的Fiddler代理,访问正常,且header中的SessionID也的确是同一个;否则利用localhost登陆仍是老现象,这时无法用Fiddler抓包,估计又新建Session了。不过呢,如果不利用localhost也不用Fiddler代理而直连网络,这种情况下如果输入自己的ip地址,却又能够正常显示。汗……不知道我上面说的这些能否理明白了(语言表达能力有限~~~)总之……如果通过ip访问,那没有问题;如果利用localhost直接访问,会出现那个问题。
    这是什么原因?
      

  7.   

    汗……
    没人回了~~~~~既然用ip访问不成问题,那么相信做服务器的时候就不会出现什么问题了,所以可以接受。
    对于某些内容采用cookieless也是不错的选择。谢谢各位的回帖。