咱们作web服务器端开发时,常常会遇到一个需求场景,由于某些耗时处理形成页面的响应处理时间超长,技术角度就想可否给页面处理程序一个指定的超时时间,服务端处理程序执行时间超过这个指定的超时时间则中断处理,直接返回响应,以防止服务器端宿主的吞吐队列堆积,形成全站瘫痪。
asp.net中,有这么一个方便的东西,他就是ExecutionTimeout 。web
相关背景
ExecutionTimeout 属性指示在请求被 ASP.NET 自动关闭前容许执行的最大秒数。 默认值为 110 秒。 只有当 <compilation> 元素中的调试特性设置为 false 时,此超时属性才适用。服务器
若是超时过时,则引起异常。 您能够在事件日志的 Application 文件夹中记录相关的信息。 经过在<healthMonitoring> 配置元素中启用应用程序情况监视来执行此操做。框架
经测试验证发现:
ASP.NET Webform项目的中ExecutionTimeout 生效。
ASP.NET MVC3中项目中中ExecutionTimeout 不生效。
MVC项目让ExecutionTimeout 生效的解决方案
web.config
目前只在最终页请求处理controller里落地,将来能够放到basecontroller里
相关资料