`
songhongchen
  • 浏览: 122736 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

管理session状态使用StateServer模式代替InProc模式

阅读更多
开发asp.net应用时,修改web.config中的SessionState节点。
使用
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/>

代替
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/>

InProc模式
优点:获取session状态的速度快,session状态直接存储在iis的进程中。
缺点:易丢失,经常需要重新登录

StateServer模式
优点:session状态单独存储在一个进程中,不会因为iis或者应用的重启而丢失状态
缺点:获取session状态的速度比InProc慢一些,毕竟是两个不同的进程。

在开发的时候,对应用有一点修改,就会导致应用的重启,这时候如果使用InProc模式
,那么每次都需要重新登录,比较浪费时间.建议使用StateServer模式。并在iis里面设置超时时间长一些。

注:使用StateServer模式的时候
1、要开启“ASP.NET State Service”服务(设为“自动”)

2、如果stateConnectionString的值不是127.0.0.1或者localhost等代表本地地址的值,需要修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state \Parameters 节点 → 将 AllowRemoteConnection 的键值设置成“1”(1 为允许远程电脑的连接,0 代表禁止)→ 设置 Port (端口号)

3、session中存储非序列化的对象,如果违反会抛出  无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。这样的异常。如果向session存储自定义的对象,那么该对象的类上一定要加上[Serializable]注释。
1
0
分享到:
评论

相关推荐

    Session SQLServer 模式

    总的来说,Session SQLServer模式是解决分布式Web应用中会话状态管理的有效方法,但它也带来了额外的数据库开销和可能的性能影响。在实际应用中,应根据项目需求和资源状况来选择最适合的Session管理策略。

    IIS7 Session的方法

    这里,`mode`属性可以设置为"InProc"(在进程内)、"StateServer"(使用单独的状态服务器)或"SQLServer"(存储在SQL Server数据库中),而`timeout`属性定义了Session过期的时间(单位为分钟)。 2. **InProc模式...

    asp.net中session对象模式剖析

    3. **StateServer(状态服务器模式)**:在这种模式下,Session数据被存储在一个独立的状态服务器上,该服务器负责管理所有应用程序的Session数据。 4. **SQLServer(SQL服务器模式)**:通过这种方式,Session数据...

    Session丢失原因和解决方案

    Session是一种服务器端的状态管理机制,用于在用户的不同请求之间保持数据。在ASP.NET中,Session默认是保存在进程内(InProc模式),即存储在ASP.NET worker进程(如aspnet_wp.exe或W3wp.exe)中。由于这些进程可能...

    aspnet状态服务和session丢失.pdf

    2. 使用持久化的Session状态存储,如StateServer或SQLServer模式。 3. 当进行文件操作时,确保操作是异步的,避免阻塞主线程导致Session丢失。 4. 对于删除或创建文件导致的问题,可能是因为操作引发了应用程序池...

    vs.net 配置session.docx

    在 StateServer 模式中,Session 信息存储在独立的状态服务中。首先,需要启动 ASP.NET State Service 服务,然后在 Web.config 文件中将 mode 属性设置为 StateServer。这样,Session 信息将被存储在状态服务中,而...

    ASP.NET Session的七点认识

    ASP.NET提供了两种主要的Session状态管理方式:InProc和StateServer。InProc模式下,Session数据存储在当前Web服务器的内存中,这是默认的配置,适用于单台服务器环境。而StateServer模式则将Session数据存储在一个...

    一个基于 ASP.Net的进行Session 处理的高级技巧程序例子代码

    然而,这个例子文件的名称"StateServer"暗示了使用的是状态服务器模式(StateServer)。这种模式下,Session数据并不存储在Web服务器的内存中,而是存储在一个单独的状态服务器进程中,通常是通过ASP.NET State ...

    .net 和IIS7.5关于Session超时的设置

    请注意,`mode`属性指定了Session状态管理的模式,`InProc`表示Session数据存储在同一个应用程序实例的内存中,这可能会导致数据丢失,如果IIS回收工作进程。 2. **ASPX 文件中设置方法** 除了在`web.config`文件...

    c#.net配置Session的生命周期.rar(视频)

    在.NET框架中,Session是ASP.NET提供的一种状态管理机制,用于在用户的不同页面请求之间保持数据。本教程将深入探讨如何在C#.NET环境中配置Session的生命周期,以及它对应用程序性能和用户体验的影响。 首先,...

    Session服务器配置指南与使用经验.doc

    现代Web应用更多地采用Token(如JWT)进行状态管理,或者利用Redis等缓存服务实现分布式Session存储,以适应更复杂的部署环境。 总之,Session服务器配置和使用是Web开发中的重要环节,理解其原理和实践技巧,能...

    【ASP.NET编程知识】ASP.NET session.timeout设置案例详解.docx

    此外,ASP.NET 还提供了多种会话状态存储模式,包括 InProc 模式、StateServer 模式和 SQLServer 模式。不同的存储模式可以满足不同的项目需求。例如,InProc 模式适用于小型项目,而 StateServer 模式和 SQLServer ...

    asp.net 跨子域共享SESSION

    ASP.NET提供了StateServer模式,将Session数据存储在独立的服务器进程中,如状态服务器或SQL Server。通过配置`&lt;sessionState&gt;`元素,设置`mode="StateServer"`并指定状态服务器的地址。这种方式可以跨子域共享,但...

    Session服务器配置指南与使用经验的深入解析

    目的是为了实现多台Web服务器间的Session共享,以克服InProc模式(即在Web服务器进程内存中存储Session)在负载均衡下的局限性。以下是.NET支持的五种Session存储方式: 1. **Off**:关闭Session功能,不使用...

    NET的csharp的session丢失sessionid不一样

    - 检查Web.config文件中的Session配置,确保Session模式(如InProc、StateServer或SQLServer)设置正确,并且其他配置项也符合预期。 #### 四、结论 SessionID的变化通常是由于客户端或服务器端配置不当引起的。...

    session例子

    通过在`&lt;system.web&gt;`节点下添加`&lt;sessionState&gt;`配置元素,可以设置Session的状态管理方式、超时时间等属性。 3. **使用Session** 在C#代码中,可以直接使用`HttpSessionState`对象,通常通过`HttpContext....

    Asp.net aspx share Session Variable

    3. **跨平台共享Session**:要实现ASP和ASP.NET间的Session共享,首先确保两者的Session状态管理方式相同。ASP默认使用InProc模式,数据存储在内存中;ASP.NET同样可以配置为InProc,但也可以配置为StateServer或SQL...

    net网页设计中的问题

    默认情况下,Session状态模式设为"InProc",这意味着Session数据存储在处理请求的ASP.NET工作进程(如IIS5的aspnet_wp.exe或IIS6的W3wp.exe)内存中。由于这个进程的不稳定性,比如配置文件变化、应用程序集变更或...

    session的应用

    需要注意的是,过度使用Session可能导致服务器内存压力增大,因此应合理控制Session的使用,及时清理不再需要的数据,并考虑使用其他状态管理方式,如ViewState、Cookie或Application,根据应用场景选择最合适的方法...

    详解.net mvc session失效问题

    在.NET MVC框架中,Session是用于存储用户会话数据的关键机制。...同时,注意在实际项目中,应尽量减少对Session的依赖,因为Session可能导致性能问题和跨域问题,更推荐使用视图模型、Cookie或者Token等替代方案。

Global site tag (gtag.js) - Google Analytics