executionTimeout 在 asp.net mvc 上不起作用

2024-01-13

我尝试在 web.config 中为 asp.net mvc 应用程序设置executionTimeout。

<location path="Home/Index">
    <system.web>
      <httpRuntime  executionTimeout="5"/>
    </system.web>
  </location>

任何使用过的Thread.Sleep在指数行动中

public ActionResult Index()
{
    Thread.Sleep(30000);            
    return View();
}

also, 我将编译的调试设置为“false”。 操作休眠约 30 秒后,“请求超时”异常不会抛出,视图已成功渲染。

有人知道如何使executionTimeout 在 asp.net mvc 中工作吗?


您需要满足以下条件:

  1. 域名不是 localhost(要测试超时,您应该使用“YourComputerName”而不是“localhost”)。
  2. 项目以Release模式编译。
  3. <compilation debug="false">

然后,还想一下:

ASP.NET 在内部使用计时器来调用请求取消过程。该计时器每 15 秒触发一次,因此如果executionTimeout设置为 3 秒,实际上请求可以在 3 秒到 18 秒之间的任何时间超时。

当计时器被触发时,线程池中的线程将用于检查所有请求。那些已经超时的会被发送ThreadAbortException通过在执行请求的线程上调用 Abort。

注意:请记住ThreadAbortException只能通过托管代码观察。因此,如果您的线程正在调用某些非托管函数,则该线程将不会中止,因此不会强制执行超时,直到执行返回到托管世界。这可以是任意长度的延迟,具体取决于这些非托管代码的作用。

阅读更多:http://consultantpoint.wordpress.com/2012/09/07/how-the-execution-timeout-is-management-in-asp-net/ http://consultantpoint.wordpress.com/2012/09/07/how-the-execution-timeout-is-managed-in-asp-net/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

executionTimeout 在 asp.net mvc 上不起作用 的相关文章

随机推荐