Working Around File Size Limitations In ASP.Net 2.0

We may not realize it, but there is a limit to the size of a file that can be uploaded using this technique. By default, the maximum size of a file to be uploaded to the server using the FileUpload control is around 4MB. We cannot upload anything that is larger than this limit.

One of the great things about .NET, however, is that it usually provides a way around limitations. We can usually change the default settings that are in place. To change this size limit, you make some changes in either the web.config.comments (found in the ASP.NET 2.0 configuration folder at C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG) or your application’s web.config file.

In the web.config.comments file, find a node called that looks like the following:

<httpRuntime

executionTimeout=”110″

maxRequestLength=”4096″

requestLengthDiskThreshold=”80″

useFullyQualifiedRedirectUrl=”false”

minFreeThreads=”8″

minLocalRequestFreeThreads=”4″

appRequestQueueLimit=”5000″

enableKernelOutputCache=”true”

enableVersionHeader=”true”

requireRootedSaveAsPath=”true”

enable=”true”

shutdownTimeout=”90″

delayNotificationTimeout=”5″

waitChangeNotification=”0″

maxWaitChangeNotification=”0″

enableHeaderChecking=”true”

sendCacheControlHeader=”true”

apartmentThreading=”false” />

A lot is going on in this single node, but the setting that takes care of the size of the files to be uploaded is the maxRequestLength attribute. By default, this is set to 4096 kilobytes (KB). Simply change this value to increase the size of the files that you can upload to the server. If you want to allow 10 megabyte (MB) files to be uploaded to the server, set the maxRequestLength value to 11264, meaning that the application allows files that are up to 11000 KB to be uploaded to the server.

Making this change in the web.config.comments file applies this setting to all the applications that are on the server. If you want to apply this to only the application you are working with, apply this node to the web.config file of your application, overriding any setting that is in the web.config.comments file. Make sure this node resides between the nodes in the configuration file.

Another setting involved in the size limitation of files to be uploaded is the value given to the executionTimeout attribute in the node.

The value given the executionTimeout attribute is the number of seconds the upload is allowed to occur before being shut down by ASP.NET. If you are going to allow large files to be uploaded to the server, you are also going to want to increase this value along with the maxRequestLength value.

One negative with increasing the size of a file that can be uploaded is that there are hackers out there who attack servers by throwing a large number of requests at them. To guard against this, you can actually decrease the size of the files that are allowed to be uploaded; otherwise, you may find hundreds or even thousands of 10 MB requests hitting your server.

Posted in Microsoft Technology Tagged with:

Ads