关于session时间过早丢失session?求助

xueyou98 2008-07-27 09:18:49
我在web程序中后台管理,用了sesion登录验证

在登录中写的是:

Session["Admin"] = "admin";

在commonfun.cs中用了验证

public static void IsAdmin()
{
//查看是否为超级管理员
try
{
if (HttpContext.Current.Session["Admin"].ToString() != "admin")
{
HttpContext.Current.Response.Write(@"<script>alert('你还没有登录或登录超时!');parent.window.location.href='Admin_Login.aspx';</script>");
}
}
catch
{
HttpContext.Current.Response.Write(@"<script>alert('你还没有登录或登录超时!');parent.window.location.href='Admin_Login.aspx';</script>");
}

}

然后在后台管理的各页中用了调用这个判断

最后在web.config中配置了session
<sessionState mode="InProc" timeout="30"/>

可是,每次后台登录后,差不多二分钟如果没有动作,就丢失了session,就会提示需要登录了,怎么办??

怎么检查现在我的网站的实际session的time out时间是多久,如何更改?
...全文
125 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xueyou98 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 tommyhuanglei 的回复:]
第一你尝试把web.config的timeout的时间设置长一些
第二设置一下模式,改成StateServer模式,试试
第三如果用户经常不操作的话服务器就会自动回收资源,可以考虑在页面中增加一个js脚本定期调用一下后台的webservice,表示当前用户还存在。

lz可以尝试一下
[/Quote]

想问一下第3种,是如何操作的?

我在timeout上设置的是30分钟,结果不到3分钟就丢失session了,在本机调试的时候没有此现象.

第3种方式,JS绑定如何做,能否举个例子,诚谢!
xueyou98 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 kyle315 的回复:]
那就要ASP.NET StateServer 模式吧,你租的主机应该启动状态服务了。
[/Quote]

用了一下这个,结果后台不能登录了,爆什么错误我看不见.

我不知道如何查看服务器是否开启了net stateserver模式.
tommyhuanglei 2008-07-29
  • 打赏
  • 举报
回复
第一你尝试把web.config的timeout的时间设置长一些
第二设置一下模式,改成StateServer模式,试试
第三如果用户经常不操作的话服务器就会自动回收资源,可以考虑在页面中增加一个js脚本定期调用一下后台的webservice,表示当前用户还存在。

lz可以尝试一下
kyle315 2008-07-29
  • 打赏
  • 举报
回复
那就要ASP.NET StateServer 模式吧,你租的主机应该启动状态服务了。
virusswb 2008-07-29
  • 打赏
  • 举报
回复
应该可以使用
你可以试一下
其他的模式
xueyou98 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 avon520 的回复:]
怎么会出现你说的那种情况呢?
是不是你的try里面发生异常了?调试一下看看
[/Quote]

谢谢你的回答.在本地调试没有丢失session,所以不知道是怎么回事

在服务器上才出现session丢失的现象,我应该怎么办?
xueyou98 2008-07-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kyle315 的回复:]
InProc方式下,Session是非常容易丢失的。如果比较重要的话可以换成state server 或者sql server方式。
[/Quote]

数据库用的是access数据库,可以用sql server方式吗?

因为是租用空间,没有开启ASP.NET StateServer

求帮助.

我感觉也是因为服务器的session丢失的原因,因为在我本地进行调试的时候,20分钟是没有问题,可服务器上2分钟如果没有活动就丢失了.
sunshine_anycall 2008-07-27
  • 打赏
  • 举报
回复
博客园里有比较详细的说明的
sunshine_anycall 2008-07-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kyle315 的回复:]
InProc方式下,Session是非常容易丢失的。如果比较重要的话可以换成state server 或者sql server方式。
[/Quote]
maddemon 2008-07-27
  • 打赏
  • 举报
回复
没用。
model改成StateServer 且服务器开始ASP.NET StateServer服务就行了
kyle315 2008-07-27
  • 打赏
  • 举报
回复
InProc方式下,Session是非常容易丢失的。如果比较重要的话可以换成state server 或者sql server方式。
阿云ivan 2008-07-27
  • 打赏
  • 举报
回复
怎么会出现你说的那种情况呢?
是不是你的try里面发生异常了?调试一下看看
xueyou98 2008-07-27
  • 打赏
  • 举报
回复
请教LS的,

Session.Timeout=200;

这一句话应该写在哪儿?
老紫竹 2008-07-27
  • 打赏
  • 举报
回复
Session.Timeout=200;
是不是这样写?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧