zoukankan      html  css  js  c++  java
  • ASP.NET Session篇

    1. Session 丢失问题

    先看下 Session 的存储方式 asp.net有3种存储方式,:inproc, sqlserver,stateserver

    在哪里设置呢 “web.config” 中有

    <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" 
    /> 

    Off  不使用Session功能
    InProc  将Session存储在进程内,就是ASP中的存储方式,这是默认值。
    StateServer 将Session存储在独立的状态服务中。
    SQLServer  将Session存储在SQL Server中。

    可选的属性:

    cookieless  :客户端是否以cookie的方式存储session 
    ture  使用Cookieless模式 不以cookie的方式存储,

    注意:如果不以cookie的方式存储,客户端是如何判断用户是否登录的呢,“url”,ASP.NET 将session通过url地址传递给浏览器客户端。

    例如:  )                                                              
    false 使用Cookie模式,这是默认值。 使用cookie时就不需要改变URL地址了。


    timeout  经过多少分钟后Session会删除。默认为30分钟 ,即session超时时间


    stateConnectionString 设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:"tcpip=127.0.0.1:42424”。当mode的值是StateServer是,这个属性是必需的。

    特别说一下这个状态服务:Session默认存储在InProc 中即ASP.NET进程中,一旦进程出现问题 Session就会丢失,所有我们通常不选择默认的存储方式,剩下的几种,个人认为比较简单的还是通过状态服务控制,

    这里所谓的服务在哪里呢:下图 服务-ASP.NET状态服务,如果使用该服务控制Session则需将服务设置为自动启动,TCPID:127.0.0.1 后面的42424是默认端口,如果该端口不能用则需要修改注册表。

     
    sqlConnectionString 设置与SQL Server连接时的连接字符串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。当mode的值是SQLServer时,这个属性是必需的。


    stateNetworkTimeout 设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。

    地址转移引发的的问题:

    在浏览器中浏览时会自动增加session地址,即地址转移,但在socket通信(TCP)时会出现302错误 此时需要获取转移后的地址方能正确访问。

  • 相关阅读:
    python_面向对象——多态
    python_面向对象——封装
    python_面向对象——多继承
    python_面向对象——继承
    python_面向对象——对象间的组合关系
    python_面向对象——类之间的依赖关系
    python_面向对象——对象之间的关联关系
    python_异常处理
    python_反射:动态导入模块
    python_网络编程socketserver模块实现多用户通信
  • 原文地址:https://www.cnblogs.com/merray/p/2689144.html
Copyright © 2011-2022 走看看