Uploading Large Files to IIS / ASP.NET
Max Upload File Size in IIS and ASP.NET
While IT Hit WebDAV server engine can process files of any size (up to 8,589,934,592 Gb) the hosting environment or you WebDAV client may not support large files upload.
If you host your WebDAV server in IIS/ASP.NET you must specify the file maximum upload size in web.config of your web application. By default maximum upload size is set to 4096 KB (4 MB) by ASP.NET. To increase the upload limit add appropriate section to your web.config file and specify the limit:
In case of IIS 7.x, both Integrated and Classic mode:
<requestLimits maxAllowedContentLength="2147483648" />
In case of IIS 6.0:
<httpRuntime maxRequestLength="2097151" />
Important! The maximum file upload size for both ASP.NET 2.0 and ASP.NET 4.0 is 2097151Kb = 2Gb.
If you need to upload files larger than 2Gb you must implement resumable upload interfaces and upload files with segments. Note that you will need the WebDAV client application that supports resumable upload in this case, such as based on IT Hit WebDAV Client API for .NET.
Upload Content Buffering in ASP.NET 2.0
The file upload is performed differently in ASP.NET 4.0-based application, HttpListener-based application and in ASP.NET 2.0-based application. While ASP.NET 4.0 and
HttpListener passes file content directly to the engine, the ASP.NET 2.0 first saves file content in a temporary folder limiting upload capabilities and increasing server load. To avoid upload buffering in ASP.NET 2.0 on servers side, the IT Hit WebDAV Server Engine provides
that also significantly improves upload speed. To use the module in your web application add it to modules section in web.config:
In case of IIS 7.x Integrated mode:
<add name="ITHitPutUploadProgressAndResumeModule" type="ITHit.WebDAV.Server.ResumableUpload.PutUploadProgressAndResumeModule, ITHit.WebDAV.Server" preCondition="integratedMode" />
In case of IIS 7.x Classic mode and IIS 6.0:
<add name="ITHitPutUploadProgressAndResumeModule" type="ITHit.WebDAV.Server.ResumableUpload.PutUploadProgressAndResumeModule, ITHit.WebDAV.Server" />
If you enable this module in ASP.NET 4.0 application it will be ignored.
Important! Always enable
ITHitPutUploadProgressAndResumeModule in the following cases:
- If you are running your application in Visual Studio Development Server (not recommended).
- If you are implementing resumable upload interfaces and hosting your server in ASP.NET 2.0.
ITHitPutUploadProgressAndResumeModule module you must always use the
To prevent canceling script execution when uploading a large file to application hosted in IIS / ASP.NET you must increase script timeout value:
HttpContext.Current.Server.ScriptTimeout = 2400; // timeout in seconds
Note that if you store your data in a database, often timeout may be caused by a database connection.