我的登陆信息是用Session保存的。在本地可以保存很久的时间,可是放到服务器上一分钟不到就清空了我的登陆信息,要我重新登陆。我想问一下,是不是服务器上可以设置Session保存的时间呢?如果是,那具体在什么地方,如何设置,谢谢各位了。

解决方案 »

  1.   

    以下的情况都可能引起Session丢失(所谓丢失就是在超时以前原来的Session无效)。
    • bin目录中的文件被改写。asp.net有一种机制,为了保证dll重新编译之后,系统正常运行,它会重新启动一次网站进程,这时就会导致Session丢失,所以如果有access数据库位于bin目录,或者有其他文件被系统改写,就会导致Session丢失。
    • SessionID丢失或者无效。如果你在URL中存储SessionID,但是使用了绝对地址重定向网站导致URL中的SessionID丢失,那么原来的Session将失效。如果你在Cookie中存储SessionID,那么客户端禁用Cookie或者Cookie达到了IE中Cookie数量的限制(每个域20个),那么Session将无效。
    • 如果使用InProc的Session,那么IIS重启将会丢失Session。同理,如果使用StateServer的Session,服务器重新启动Session也会丢失。超时时间可以通过调整Web.config文件进行修改:<sessionState timeout="30"></sessionState>当然你也可以在程序中进行设置:Session.Timeout = "30";
    上面将超时时间设置为30分钟