I have an aspx page which contains code that is liable to take 5 minutes or more to execute on the server. So I need to extend the amount of time before the Request times ou
executionTimeout
Optional TimeSpan attribute. Specifies the maximum number of seconds that a request is allowed to execute before being automatically shut down by ASP.NET. This time-out applies only if the debug attribute in the compilation element is False. To help to prevent shutting down the application while you are debugging, do not set this time-out to a large value. The default is "00:01:50" (110 seconds).
ScriptTimeout
A default ScriptTimeout can be set for a Web service or Web server by using the AspScriptTimeout metabase property. The ScriptTimeout property cannot be set to a value less than that specified in the metabase. For example, if NumSeconds is set to 10, and the metabase setting contains the default value of 90 seconds, scripts will time out after 90 seconds. However, if NumSeconds were set to 100, the scripts would time out after 100 seconds.
From this page, some official info: https://msdn.microsoft.com/en-us/library/system.web.httpserverutility.scripttimeout%28v=vs.110%29.aspx
The ScriptTimeout property can be set in the Web.config file by setting the executionTimeout attribute of the element. Setting the time-out programmatically with the ScriptTimeout property takes precedence over the Web.config setting.
I just thought it might be beneficial to note that Microsoft says "executionTimeout" is the same property as "ScriptTimeout".
As for the executionTimeout setting for ASP.NET's <httpRuntime>
configuration not work problem. The documentation on this attribute is really not very clear. The problem is caused by the following reasons:
This setting will take effect only when we set the "debug" to false in web.config , like:
when set to "debug=true" mode, the runtime will ignore the timeout setting.
debug="false", the executionTimeout will still has some
delay when the value is very small. In fact, it is recommeded that we don't
set the timeout less than 1.5 minutes. And when we set the timeout to less
than 1 minute, the delay will span from 5 secs up to 15 secs. For example,
if we set executionTimeout="5", it may take a bout 15 seconds for the page
to timeout.Server.ScriptTimeout property is a COM interface which is used in classic ASP. The executionTimeout of ASP.NET is the replacement of ScriptTimeout in asp.net , so we no longer need to use ScriptTimeout in asp.net.
In addition, as for have the script ALWAYS terminate after 2 seconds
I'm afraid there is no means in asp.net's runtime setting since the asp.net's runtime request processing management can't reach this level of accuracy, 2 seconds is a too small value which may make the performance very pool to monitor such a small interval. If we do need to let a certain processing timeout, we can consider put the timeout logic in the above application code level. For example, if we're executing SqlCommand , we can set the sqlcommand 's execution timeout. Or if we are executing a async call in page code, we can set a timeout for the async call
Hope helps.
Key difference is one is for an entire site and the other you can set just at a page level.
They are the same setting. Use the web.config for most things and if you need a longer execution for a specific page (that might run a long report or batch job) set this at the page level:
\\set page timeout to 40 minutes
Page.Server.ScriptTimeout = 2400;