【发布时间】:2018-01-15 03:04:16
【问题描述】:
在某些具有此超时值的 ASP.NET 控制器上,在哪里设置请求超时?是在控制器的构造函数中还是其他地方?
System.Web.HttpContext.Current.Server.ScriptTimeout = 50;
【问题讨论】:
标签: .net asp.net-mvc connection-timeout
在某些具有此超时值的 ASP.NET 控制器上,在哪里设置请求超时?是在控制器的构造函数中还是其他地方?
System.Web.HttpContext.Current.Server.ScriptTimeout = 50;
【问题讨论】:
标签: .net asp.net-mvc connection-timeout
由于 ScriptTimeout 是应用程序范围内的静态设置,因此设置它的唯一合理位置是在应用程序启动时。
或者,您可以在web.config 文件中设置它。
<configuration>
...
<system.web>
<httpRuntime executionTimeout="600" />
参考:http://www.beansoftware.com/ASP.NET-FAQ/Change-Script-Timeout.aspx
【讨论】:
ScriptTimeout 仅对当前请求有效。例如。在评论 ScriptTimeout stackoverflow.com/a/579599/1059776 中也提到了
如果您想将超时应用于控制器设置ScriptTimeout 的所有操作似乎是一个不错的选择。
如果上传持续时间可能已经超过应用程序范围的executionTimeout 设置,则例外情况。在这种情况下,超时发生在执行到达控制器之前,因此构造函数将没有机会进行设置。
这种情况下的解决方法是在分析HttpContext.Current.Request.Path 后将ScriptTimeout 设置为Application_BeginRequest。
【讨论】: