当前位置:编程学习 > C#/ASP.NET >>

session 丢失菜鸟恳求高手指点

问题是这样的,我做了个网站程序。开始用户登录不久一刷新Session就很快的丢失了。在网上查了很多解决的方法都没有解决,后来就用ASP.NET 状态服务,我启动了服务,修改了注册表。这个方法是有点效果。但是当我每第一次登录时还是会很快的就过期了,要登录第二次才正常。我不知道是什么原因,难道是第一次登录没有存进服务里面吗?在这里恳求高手指点,如何处里这个问题,或是有别的处理的方法。
  
是不是我的配置有问题  VS2010和ORACLE的数据库

  <appSettings>
    <add key="connstring" value="Password=XXXXX;User ID=XXXXXXX;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXX)));" />
  </appSettings>

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="60"></sessionState>


--------------------编程问答-------------------- timeout="60"
设置长一点

你的用户是不是没有进行操作 然后才丢失的? --------------------编程问答-------------------- 1。打开web.config文件,设置如下:
<system.web> 
<!--  会话状态设置
          默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
          如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
         若要禁用 Cookie,请设置 sessionState cookieless="true"。
    -->
    <sessionState 
            mode="StateServer"             //就是修改这里为“StateServer”
            stateConnectionString="tcpip=127.0.0.1:42424"
            sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
            cookieless="false" 
            timeout="30" 
    />

2。打开“控制面板--管理工具--服务”,找到ASP.NET State Service这个服务,将其设为自动启动。

--------------------编程问答-------------------- timeout="60"应该是瞒长的了,但是有时不到2分钟就丢失了。ASP.NET State Service这个服务已经启动,注册表的AllowRemoteConnection也已经改了。我就查不出是什么原因。
2楼的
<sessionState  
  mode="StateServer" //就是修改这里为“StateServer”
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false"  
  timeout="30"  
  />

我试一试  先谢谢大家 --------------------编程问答-------------------- 一楼我对你(你的用户是不是没有进行操作 然后才丢失的?)有点疑问,如果不操作。为什么会丢失呢。有时我登录后不操作,发现丢失比操作快好多。 --------------------编程问答-------------------- 楼主的id和我一个朋友好像...

并发用户量大否? --------------------编程问答-------------------- timeout="600"
这样试试 --------------------编程问答--------------------
引用 4 楼 hbr168 的回复:
一楼我对你(你的用户是不是没有进行操作 然后才丢失的?)有点疑问,如果不操作。为什么会丢失呢。有时我登录后不操作,发现丢失比操作快好多。

如果用户不操作。 会出现session超时
哎 理解为60秒了。 --------------------编程问答--------------------
引用 2 楼 lifusong890910 的回复:
1。打开web.config文件,设置如下:
<system.web> 
<!-- 会话状态设置
  默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
  如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
  若要禁用 Cookie,请设置 sessionState cookieless="true"。
  -->
  <s……


如果这样不行的话,你打开IIS找到你的网站,
右键-》属性-》ASP.NET配置设置-》状态管理 里面可以设置会话超时时间。单位是分钟 --------------------编程问答-------------------- 并发用户不是很大,最大应该不超500。我想我服务器的内存、性能是可以承受的。 --------------------编程问答-------------------- 我想请问一下wxr0323,如果是用户不操作造成的丢失,那为什么第二次登录后同样不操作40分钟后都没有问题呢。就是第一次登录不行。
 
--------------------编程问答-------------------- 登录保存session的代码大致如何写的? --------------------编程问答--------------------
引用 11 楼 amandag 的回复:
登录保存session的代码大致如何写的?


                    if (dwds.Tables[0].Rows.Count >0)
                    {
                        Session["acb205"] = this.username.Text.Trim();
                        Session["aab007"] = this.password.Text.Trim();
                        this.Response.Redirect("conter/index.aspx");
                    }
                    else
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,