在代码/“刷新”请求中设置 ASP.net executionTimeout

Posted

技术标签:

【中文标题】在代码/“刷新”请求中设置 ASP.net executionTimeout【英文标题】:Set ASP.net executionTimeout in code / "refresh" request 【发布时间】:2010-09-06 23:30:06 【问题描述】:

我将有一个 ASP.net 页面,该页面创建一些 Excel 表格并将它们发送给用户。问题是,有时我会遇到 Http 超时,大概是因为 Request 运行的时间比 executionTimeout 长(默认为 110 秒)。

我只是想知道我的选择是什么来防止这种情况发生,而不希望通常增加 web.config 中的 executionTimeout?

php 中,set_time_limit 存在,可以在函数中使用以延长其寿命,但我在 C#/ASP.net 中没有看到类似的东西?

在 ASP.net 中如何处理长时间运行的函数?

【问题讨论】:

【参考方案1】:

如果你想增加这个请求的执行超时时间,你可以设置

HttpContext.Current.Server.ScriptTimeout

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

【讨论】:

【参考方案2】:

我自己还没有真正面对这个问题太多,所以请记住这一点。

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

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

【讨论】:

能否请您详细说明一下这个想法,您如何设置回调方法?

以上是关于在代码/“刷新”请求中设置 ASP.net executionTimeout的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET Core 中设置默认区域?

asp.net 中设置 session 当天过期

如何在 ASP.NET Core 中设置 cookie validateInterval?

在 asp.net MVC 中设置整数标头值

如何在 ASP.NET AJAX TabControl 中设置控件样式

如何在 asp.net core 中设置 jwt 令牌的生命周期