我将有一个ASP.net页面,可以创建一些Excel表格并将它们发送给用户。问题是,有时我会得到Http超时,大概是因为Request运行的时间比executionTimeout长(默认为110秒)。
我只是想知道我的选择是什么来防止这种情况,而不想在web.config
中通常增加executionTimeout?
在PHP中,set_time_limit
存在,可以在函数中使用它来延长它的寿命,但我在C#/ ASP.net中没有看到类似的东西?
如何在ASP.net中处理长时间运行的功能?
答案 0 :(得分:14)
如果要增加此一个请求的执行超时,可以设置
HttpContext.Current.Server.ScriptTimeout
但您仍然可能遇到客户端超时的问题,您无法直接从服务器可靠地解决。为了解决这个问题,你可以实现一个“处理”页面(比如Rob建议),它会回复,直到响应准备就绪。或者您可能希望调查AJAX以执行类似的操作。
答案 1 :(得分:1)
我自己也不必过多地面对这个问题,所以请记住这一点。
无论如何,您无法运行进程异步并指定一个完成后发生的回调方法,然后将页面保持在“我们正在处理您的请求...”循环周期。然后你可以打开它来添加一些不错的UI增强功能。
只是有点大声思考。那可能就是我想做的事情:)