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