
[英]How do I increase the timeout for Visual Studio predefined table adapters in C#
[英]How to increase login session timeout on c# web page in visual studio?
所以,这就是事情...当我使用login.aspx登录时,它会将我重定向到admin.aspx。 如果让管理员页面闲置几分钟,然后尝试打开Web表单,则会给我一个错误。
"Object reference not set to an instance of an object." **Source Error:** Line 15: protected void Page_Load(object sender, EventArgs e) Line 16: { Line 17: string s=Session["po"].ToString(); Line 18: Line 19: Session["y"]=".";
现在,当我再次登录时,页面工作正常。 几分钟后,每当我尝试从管理页面打开页面或尝试刷新页面时,我再次收到此错误。 另一方面,我的页面很少,而且它们没有上面的会话代码,它们工作正常。 但是唯一的问题是,无需登录即可打开它们,使用此命令的命令不会直接打开。 每当我尝试打开它们而不登录时,我也会收到此错误。
您能解释一下如何解决此问题吗? 有什么办法可以增加会话超时时间? 这是某种会话注销吗?
正如乔纳森·蔡斯在留言中提到您可以配置Session timeout
在web配置在ASP.NET会话超时
另一种解决方案是创建一个实际上不执行任何操作的服务,并在一定时间间隔内从客户端向该服务发出请求,或者仅调用一次以延长session
时间。 例如,如果您的session
在30分钟后过期,则间隔为29分钟。 这样,您可以选择要在哪个页面中“保留” session
更长的时间或使其无限期。
服务: RetainSession.ashx
using System.Web;
using System.Web.SessionState;
namespace WebApplication
{
public class RetainSession : IHttpHandler,
IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Ok");
}
public bool IsReusable
{
get { return false; }
}
}
}
客户端:
var interval = 1000 * 60 * 29;
var intervalKey = window.setInterval(function(){
$.get('/services/RetainSession.ashx?v='+Date.now());
},interval);
停止间隔:
window.clearInterval(intervalKey);
致电一次:
var timeout = 1000 * 60 * 29;
window.setTimeout(function(){
$.get('/services/RetainSession.ashx?v='+Date.now());
},timeout);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.