问题如下:
 1. 服务器端会处理各种各样的请求,有的请求很快就能执行完,而有的需要执行很长时间,而且时间不确定,3个小时,5个小时都有可能。
 2. 在config文件里面统一设置sessionState 的timeout不可取,一个是因为请求时间的长短是不确定的,另外如果设置的时间太长(一天?),则会影响服务器的性能。我目前想到的可能的办法:
1。针对处理需要很长时间的session,在处理过程中,客户端不断向服务器端发消息。
2。服务器端有没有一个办法,让某个session一直不过期?各位有没有遇害到类似的问题,有没有什么好的解决办法?谢谢了.

解决方案 »

  1.   

    你程序设计是有问题
    不过  既然你有这样的要求  就有这样的解决办法
    你把session换成cookie好了
      

  2.   

    是什么程序要让服务器去执行几小时甚至一天?SESSION默认是存在在进程里的,你可以通过修改WEB.CONFIG文件,把SESSION存到数据库里去.要不然你就用COOKIES 不过我觉得这种长时间的请求方式很恐怖
      

  3.   

    请求的时间长是因为服务器端需要做大量的分析工作。我有个不太清楚的地方, 就是服务器从请求开始,一直到请求结束,当前的这个session应该一直不会结束, 是吗?
    就算是这个请求处理的时间已经超过了设置的session 的 timeOut, 或者说客户端没有响应的时间也已经超过了这个值,因为可能这个时候客户端只有等,没有任何操作。
      

  4.   

    你可以做个 唯一值。在请求时 把他放在服务器上 然后 Session销毁在请求处理业务逻辑上, 取得 服务器上的唯一值 就好了。
      

  5.   

    服务器一直在处理,而客户端没有响应的时间已经超时了,这个session会不会过期呢?
      

  6.   

    设置太长的session时效,太影响性能了
      

  7.   

    用心跳
    页面每18分钟(Session默认20)操作一下,可以是刷新一类的....这样就可以了
      

  8.   

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

  9.   

    我觉得你没弄清楚 Session 和 Request 你说的这不是会话,是一次请求,如果时间这么长早都超时了,你可以考虑异步的方式,客户端请求发送后,服务器执行,并定期写日志记录,客户端可以随时查看进度的方式
      

  10.   

    用cookie,要不然就是代码效率太低了,或者不适合用C/S,改用B/S吧,请求几个小时,so terrible!
      

  11.   

    这样的情况,session已经不合适了,用cookie,或application
      

  12.   

    对于这个问题
    根据楼主的思路
    那就根据实际情况
    每隔一段时间或某种操作,就重新写一下session
    如果超出了某个原则,让session自动销毁
      

  13.   


    以前一个B/S的程序, 现在上面的领导非要把它做成C/S.做成C/S的好处就是数据大家可以共享, 一个请求如果处理过以后,其它人再请求就会很快,因为在服务器端对请求的结果进行了cache.
      

  14.   


    怎么重新写一下session呢? 是不是可以用postback 或者 callback? 那会不会对正在进行的分析造成影响?
      

  15.   

    page_load
    {
       string 变量=Session["xxx"]
    }on_click
    {    这块用变量不用session
    }
      

  16.   

    别这么整了。八个小时换成cookie吧~