在代码/“刷新”请求中设置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。

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