c# – 根据自定义条件防止个别会话的到期?

我正在开发的一个网站是以数据为中心的.有些报告需要一个多小时才能完成.每当用户提交报告请求时,都会创建一个生成报告的新线程.然后将用户重定向一个表示报告正在进行页面,并请刷新下载报告.如果用户再次刷新页面并且报告仍在进行中,则显示相同的消息;否则提供下载链接.

所有报告/用户关系都保存在应用程序变量中.这样做很好,除非当用户不活动超过20分钟(正在处理报告时),然后用户注销;如果用户再次登录,则仍可以下载该报告.

我不想增加会话过期时间,但如果用户后台执行某些操作,就像正在处理的报表一样,我需要停止该过期.

在Session_End中,我可以在Application [“work”]中检索该用户标识符并将其匹配,以查看该用户是否有待处理的工作.

但是,在上述情况下,我如何推迟会话结束,我无能为力?

编辑:每个人都建议作为“维护联系人”到“使用查询字符串”的解决方法. “维持联系”对我来说最有希望,但在以下情况下失败:a.午餐时关闭/计算浏览器进入待机状态等.当用户转到另一个nonasp.net部分(它是一个站点).

是不是可以取消Session_End事件本身?

解决方法

Maintain a contact with the server will avoid Session Timeout.

创建一个空的Web服务并在您的服务器中运行,然后通过JQuery通过JQuery调用Web服务,间隔几秒就足以保持会话活动

可能这个解决方案会帮你

尝试此链接的详细信息:Prevent Session Timeout in ASP.NET

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么