In the .NET configuration file for your Web application - web.config or machine.config- there are several attributes that can affect the performance of large uploads. To set these attributes at the machine level, modify machine.config (located in [windows directory]\Microsoft.NET\Framework\[.NET Version Directory]\CONFIG). To set the attributes at the application level, modify your application's web.config file.
You will find the following values in the httpRuntime
node of machine.config:
executionTimeout
maxRequestLength
appRequestQueueLimit
appRequestQueueLimit
is 100. If your server will be handling more
than 100 concurrent requests, increase the value of appRequestQueueLimit
.
The following attributes are in the processModel
node of machine.config:
responseDeadlockInterval
responseDeadlockInterval
is 3 minutes. To allow
very large uploads, you may have to increase this value. This property must be set
in machine.config, not at the application level in web.config. It will affect any
response deadlock in ASP.NET and should be used with caution. responseRestartDeadlockInterval
responseRestartDeadlockInterval
is 9 minutes. To allow
very large uploads, you may have to increase this value. This property must be set
in machine.config, not at the application level in web.config. It will affect any
response deadlock in ASP.NET and should be used with caution.maxIoThreads
maxIoThreads
is 25. Increasing this value will increase the number of
concurrent executing requests, significantly reducing the amount of time it takes
to process concurrent requests. This value is particularly important for large uploads
using the HttpModule. If you expect many concurrent uploads to your site, you should
set maxIoThreads
to the number of concurrent uploads that you wish
to support.