当前位置:编程学习 > C#/ASP.NET >>

执行较长时间任务,页面超时!

我要在asp.net后台处理一个需要比较长时间完成的任务我,其实就是一次性插入很多数据再数据库中,
因为花费的时间比较的长,页面会弹出超时问题.我的想法如下,但是还是没有解决
1、在web.config中设置
<httpRuntime maxRequestLength="2097150" executionTimeout="3600" />

2、使用AJAX异步调用,在另外的页面处理,后台处理是可以,但是等处理完之后,
返回这个页面的时候还是弹出页面吵时

3、我想用多线程处理,但是我自己重来都没有使用过,而且我在网上
http://dev.csdn.net/htmls/67/67823.html
都是这个例子,但是我这里无法运行成功!请各位指教使用该方法,或者有没有比这个更好的方法有代码的朋友可以发代码到我的邮箱
hnczliaoxueping@163.com --------------------编程问答-------------------- 还是建议写一个exe来做了。这个不是你放宽时限的问题了。非要BS的方式用户体验也很差,连运行了多少百分比都无法知道。
不过关键还是看你的数据量到底有多大,操作到底有多复杂,还是得具体情况具体分析。 --------------------编程问答--------------------
引用 1 楼 aspnetx 的回复:
还是建议写一个exe来做了。这个不是你放宽时限的问题了。非要BS的方式用户体验也很差,连运行了多少百分比都无法知道。
不过关键还是看你的数据量到底有多大,操作到底有多复杂,还是得具体情况具体分析。


这个数据量我也不知道有多大,因为我现在做的是一个接收POP邮件的效果,如果用户的邮箱有很几百封邮件而且又有很大的附件,我们附件是要用二进制保存到数据库中,所以这里就比较消耗时间,以至于消耗的时间比较长,exe没有用过,可否多指教点! --------------------编程问答-------------------- 看看这个例子!
asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例

这样进度显示,可以提高用户体验!


还有这个,也可以参考一下!
asp.net执行一个超长时间的任务 --------------------编程问答-------------------- 在提交的时候过程很长,为了防止用户再次点击而且为了界面友好可以用一个层遮住所有按钮再显示个提示信息,等服务器端处理完成再导航到本页
超时文件就是操作问题,优化代码如多线程
asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度  --------------------编程问答-------------------- 添加起始的忙碌状态。。。将页面的最长时间增长。。等等都可以解决 --------------------编程问答-------------------- 参考我的博文:http://www.cnblogs.com/Philoo/archive/2009/09/10/1564266.html --------------------编程问答-------------------- 学习。。。。 --------------------编程问答-------------------- 其实LZ可以考虑换个数据写入方式。如果是sql server,不妨考虑SqlBulkCopy批量写入,效率很高。 --------------------编程问答-------------------- 5秒钟内不能返回,就要当作一个严重的bug了。 --------------------编程问答-------------------- 建议写一个服务,本身程序不做pop邮件接收 --------------------编程问答-------------------- --------------------编程问答-------------------- 用存储过程来做 --------------------编程问答--------------------
引用 3 楼 computerfox 的回复:
看看这个例子!
asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例

这样进度显示,可以提高用户体验!


还有这个,也可以参考一下!
asp.net执行一个超长时间的任务


up --------------------编程问答--------------------
引用 8 楼 liqiang8 的回复:
其实LZ可以考虑换个数据写入方式。如果是sql server,不妨考虑SqlBulkCopy批量写入,效率很高。

对,重点应该放在怎么解决写入慢的问题。
如果你每插入一条数据的都要连接一次数据库,那肯定会很慢。
最起码也得是在本地组织好了insert语句后,一次性提交插入。
或者最好用批量写入.
--------------------编程问答-------------------- 学习学习!
1.先优化下数据插入方式
2.然后多线程执行任务,隔断时间返回点处理进度
3.显示处理进度的页面隔断时间去获取点处理进度并展示给用户 --------------------编程问答-------------------- 学习,谢谢! --------------------编程问答-------------------- 谢谢,有用啊, --------------------编程问答--------------------
引用 10 楼 whltian 的回复:
建议写一个服务,本身程序不做pop邮件接收


同上,每个对象都是服务提供者 --------------------编程问答-------------------- 建议用线程控制 --------------------编程问答--------------------
引用 3 楼 computerfox 的回复:
看看这个例子!
asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例

这样进度显示,可以提高用户体验!


还有这个,也可以参考一下!
asp.net执行一个超长时间的任务

+ --------------------编程问答-------------------- 顶~, --------------------编程问答-------------------- 好贴,顶一顶.... --------------------编程问答-------------------- 学习~ --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 把符件写入数据库你是疯了
补充:.NET技术 ,  .NET技术前瞻
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,