在代码/“刷新”请求中设置ASP.net executionTimeout

时间:2008-08-27 07:50:06

标签: c# asp.net

我将有一个ASP.net页面,可以创建一些Excel表格并将它们发送给用户。问题是,有时我会得到Http超时,大概是因为Request运行的时间比executionTimeout长(默认为110秒)。

我只是想知道我的选择是什么来防止这种情况,而不想在web.config中通常增加executionTimeout?

在PHP中,set_time_limit存在,可以在函数中使用它来延长它的寿命,但我在C#/ ASP.net中没有看到类似的东西?

如何在ASP.net中处理长时间运行的功能?

2 个答案:

答案 0 :(得分:14)

如果要增加此一个请求的执行超时,可以设置

HttpContext.Current.Server.ScriptTimeout

但您仍然可能遇到客户端超时的问题,您无法直接从服务器可靠地解决。为了解决这个问题,你可以实现一个“处理”页面(比如Rob建议),它会回复,直到响应准备就绪。或者您可能希望调查AJAX以执行类似的操作。

答案 1 :(得分:1)

我自己也不必过多地面对这个问题,所以请记住这一点。

无论如何,您无法运行进程异步并指定一个完成后发生的回调方法,然后将页面保持在“我们正在处理您的请求...”循环周期。然后你可以打开它来添加一些不错的UI增强功能。

只是有点大声思考。那可能就是我想做的事情:)