关于c#:在代码/“刷新”请求中设置ASP.net执行超时

关于c#:在代码/“刷新”请求中设置ASP.net执行超时

Set ASP.net executionTimeout in code / “refresh” request

我将拥有一个ASP.net页面,该页面创建一些Excel工作表并将其发送给用户。 问题是,有时我会收到Http超时,大概是因为请求的运行时间比executionTimeout(默认值为110秒)更长。

我只是想知道我有什么选择来防止这种情况,而又不想总体上增加web.config中的executionTimeout?

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

如何处理ASP.net中长期运行的功能?


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

1
HttpContext.Current.Server.ScriptTimeout

但是您仍然可能会遇到客户端超时的问题,您无法直接从服务器可靠地解决它。 为了解决这个问题,您可以实现一个"处理"页面(如Rob所建议的),该页面回发直到响应准备就绪。 或者,您可能希望研究AJAX来做类似的事情。


我本人实际上并没有太多面对这个问题,因此请记住这一点。

无论如何,您是否可以异步运行流程并指定一旦完成即会发生的回调方法,然后将页面置于"我们正在处理您的请求.."循环周期中。 然后,您可以打开它来添加一些不错的UI增强功能。

大声思考一下。 那可能就是我想做的事情:)


推荐阅读