在代码/"刷新"请求中设置ASP.net执行超时
时间:2020-03-05 18:43:42 来源:igfitidea点击:
我将拥有一个ASP.net页面,该页面创建一些Excel工作表并将其发送给用户。问题是,有时我会收到Http超时,大概是因为请求的运行时间比executionTimeout更长(默认情况下为110秒)。
我只是想知道我的选择是什么来防止这种情况,而又不想总体上增加web.config
中的executionTimeout?
在PHP中,存在" set_time_limit",可以在函数中使用它来延长其寿命,但是在C#/ ASP.net中我没有看到类似的东西?
如何处理ASP.net中长期运行的功能?
解决方案
回答
我本人实际上并没有太多面对这个问题,因此请记住这一点。
无论如何,我们是否可以异步运行流程并指定一旦完成即会发生的回调方法,然后将页面置于"我们正在处理请求.."循环周期中。然后,我们可以打开它并添加一些不错的UI增强功能。
只是大声思考一下。那可能就是我想做的事情:)
回答
如果要增加此请求的执行超时,可以设置
HttpContext.Current.Server.ScriptTimeout
但是我们仍然可能遇到客户端超时的问题,我们无法直接从服务器可靠地解决该问题。为了解决这个问题,我们可以实现一个"处理"页面(如Rob所建议的),该页面回发直到响应准备就绪。或者,我们可能希望研究AJAX来做类似的事情。