gpt4 book ai didi

asp.net-mvc - executionTimeout 在 asp.net mvc 上不起作用

转载 作者:行者123 更新时间:2023-12-02 04:18:37 26 4
gpt4 key购买 nike

我尝试在 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();
}

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

有人知道如何让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-managed-in-asp-net/

关于asp.net-mvc - executionTimeout 在 asp.net mvc 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com