在ASP.NET中,Web.config文件中的Session配置信息如下:<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"
/>现在问题如下:
1。请问是否可以将session值存储到oracle数据库中呢?
2。如果 mode 值为 StateServer 时,ASP.NET会不会从Session状态服务器自动读取session值呢?也就是说只要设置一下Web.config文件而不需要修改原有的程序代码。
3。如果 mode 值为 StateServer 时,即 设置为将Session存储在独立的状态服务中。如果session使用的很频繁,那么Session状态服务器的压力会不会比较大呢?如果在线用户量达到5000左右呢?

解决方案 »

  1.   

    将服务器Session信息存储在进程外  首先,让我们来打开管理工具->服务,找到名为:ASP.NET State Service的服务,启动它。实际上,这个服务就是启动一个要保存Session信息的进程。启动这个服务后,你可以从Windows任务管理器->进程中看到一个名为aspnet_state.exe的进程,这个就是我们保存Session信息的进程。  然后,回到Web.config文件中上述的段落中,将mode的值改为StateServer。保存文件后的重新打开一个IE,打开SessionState.aspx页面,保存一些信息到Session中。这时,让我们重起IIS,再回到SessionState.aspx页面中查看刚才的Session信息,发现没有丢失。  实际上,这种将Session信息存储在进程外的方式不光指可以将信息存储在本机的进程外,还可以将Session信息存储在其他的服务器的进程中。这时,不光需要将mode的值改为StateServer,还需要在stateConnectionString中配置相应的参数。例如你的计算你是192.168.0.1,你想把Session存储在IP为192.168.0.2的计算机的进程中,就需要设置成这样:stateConnectionString="tcpip=192.168.0.2:42424"。当然,不要忘记在192.168.0.2的计算机中装上.NET Framework,并且启动ASP.NET State Services服务。
      

  2.   

    楼上说的SessionState.aspx页面在哪里罗,麻烦给个全部地址罗。谢谢了!
      

  3.   

    1楼分析的透彻,原来session可以这样保存!但是如何在保存session的那太服务器设置session的期限呢?
      

  4.   

    SessionState.aspx是给用来测试的页面