小编Rat*_*tna的帖子

根据自定义条件防止单个会话到期?

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

所有报告/用户关系都保存在应用程序变量中.这工作正常,除非用户处于非活动状态超过20分钟(正在处理报告时),然后用户退出; 如果用户再次登录,仍可以下载报告.

我不想增加会话到期时间,但如果用户在后台进行了某些操作,我需要停止过期,例如正在处理的报表.

在Session_End中,我能够检索userid并匹配它Application["work"]以查看用户是否有待处理的工作.

但是,在上述情况下,如何推迟会话结束,我一无所知?


编辑:每个人都建议从"维护联系人"到"使用查询字符串"作为解决方法."保持联系"对我来说看起来最有希望,但在以下情况下失败了:a.当浏览器关闭/计算在午餐期间进入待机模式等时.当用户访问另一个nonasp.net部分(它是遗留站点)时.

是不是可以取消Session_End活动本身?

c# asp.net session-variables session-state global-asax

10
推荐指数
2
解决办法
2050
查看次数

在Mysql中使用'Stuff'和'FOR XML PATH'替代以下存储的Ms-sql程序

我在Ms-Sql中有以下查询

  INSERT INTO tbl_web_price_update 

    Select bd_book_code,

    Case 
        When pd.bpd_price is null then  
            cast((a.bd_price*c.ptm_price) as numeric(10))   
        else
            cast((pd.bpd_price*c.ptm_price) as numeric(10))             
        end
    As Price

    from tbl_books_details a 
        inner join tbl_price_type_master c on a.bd_price_type = c.ptm_price_type_id 
        left join tbl_books_price_details pd on pd.bpd_book_code = a.bd_book_code 
    Where c.ptm_price_type_id = @price_type     

    SELECT distinct r.price, STUFF((SELECT distinct ','+ Cast(a.bd_book_code as varchar) FROM tbl_web_price_update a WHERE r.price = a.price FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, '') FROM tbl_web_price_update r
Run Code Online (Sandbox Code Playgroud)

我已经从ms-sql迁移到my-sql,我无法在Mysql中编写替代查询.请帮忙.

mysql sql-server dbmigrate

9
推荐指数
1
解决办法
1万
查看次数

是否可以验证发布的文件是否为pdf?

保守的网站主要工作是接受用户的文件并保存.一切都很好,直到2个月后,当我被告知强制约束只接受pdf文件.

在此之前,用户习惯于从文本,rtf到良好的pdf提交各种格式.

我通过检查文件扩展名来应用约束 - 简单吗?但是当管理员检查这些文件时,有60%的文件损坏了.

我花了很多不眠之夜来确定腐败的原因然后我突然想到他们可能正在提交腐败文件.

我采用了以前的记录,并确定了一些用户的文件类型最喜欢的格式,我们收到了损坏的文件.

我把扩展改回了那里最喜欢的扩展和繁荣......文件打开了.

然而我所知道的是粗略地告诉用户如何将文件转发到pdf一些(很多)只是改变了扩展和提交.由于网站奖励用户没有.文件提交管理人员对我嗤之以鼻.有什么办法可以在不依赖扩展的情况下检查文件是否为pdf?

我在c#3.5 asp.net中使用fileupload

c# pdf asp.net

3
推荐指数
2
解决办法
3881
查看次数