To begin with, the Support for Large Files was one of the enhancements made in Windows SharePoint Services SP 1. By default, the maximum size for uploading files is set to 50 MB. The maximum file size that it can go up to is 2,047 megabytes.
Now it is obvious that any cap on the maximum file size will stop the users from trying to upload larger files (including me!). Though SharePoint is meant to handle files that are up to 2 gigs in size, it is not practically feasible and not recommended as well.
However, there are circumstances where files of much smaller size fail to upload which makes one wonder as to what could be the reason. Hence I decided to write this post for all those who have come across this issue and are looking for some options to work around it.
On a SharePoint server (WSS 3.0, MOSS 2007, SharePoint Server 2010 or SharePoint Server 2013) when we upload any document larger that 50 megs on any document library, we can encounter the following error messages
If you are using explorer view, the error message would be similar to
Could not find this item --> This is no longer located \\Servername\DavWWWRoot\team. Verify the item's location and try again".
Before we begin, I would like to mention that SharePoint is not really designed to handle huge files > 300 Mb). It stores all files in the content databases and that's where these large files are going. So I strongly recommend using file shares instead.
Going ahead, this can occur due to various reasons and I have listed a few of the possible causes and the workarounds for them
Note : The default max single file upload size is 50 megs by default for a web application (in IIS 6.0) and 28 megs for IIS 7.0.
Note:
Any upload size which is below 50 megs is enforced directly through web app settings. Above 50 megs, you need to make a some small change to the web.config file to allow larger uploads. Repeat the steps listed below for all zones for your web app all the servers which host the web application role.
<httpRuntime maxRequestLength="51200" /> with <httpRuntime executionTimeout="999999" maxRequestLength="51200" />
See <httpRuntime> element in web.config for more information.
While uploading large files, there are chances that the request will timeout. By default, the IIS connection time-out setting is 120 seconds. Follow these steps to increase the connection time-out setting,
- Click Start, point to All Programs, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
- Right-click the virtual server that you want to configure, and then click Properties.
- Click the Web Site tab. Under Connections, type the number of seconds that you want in the Connection time-out box,
and then click OK.
By default, the web.config file is located in the 'C:\Inetpub\Wwwroot\Wss\Virtual Directories\<Virtual Directory>' folder. Add the following configuration to the web.config, just before the <configuration> section closes out.
Here’s a screenshot of the web.config file after the change:
This sets the value of the maxAllowedContentLength property to 52428800 (in bytes) for the web application only.
See KB944981 - You cannot upload files that are larger than 28 MB on a Windows Server 2008-based computer that is running Windows SharePoint Services 3.0.
Note:
The following information is applicable to IIS 7.0 and suggests making a change to the ‘applicationhost.config’ file which is a core configuration file for IIS. For more information, see
The maxAllowedContentLength property specifies the maximum length of content in a request in bytes and it needs to be set on a Windows Server 2008 computer that has IIS 7.0-only installations. To change the value of the property, do the following
appcmd set config /section:requestfiltering /requestlimits.maxallowedcontentlength:unit
where the variable "requestlimits.maxallowedcontentlength" unit specifies the maximum length of content.
For example, to specify 2000000000 as the maximum length of content, type the following at the command prompt, and then press ENTER:
appcmd set config /section:requestfiltering /requestlimits.maxallowedcontentlength:2000000000
The large-file-chunk-size property sets the amount of data that can be read from server running SQL Server at one time.
Stsadm -o getproperty -propertyname large-file-chunk-size
Stsadm.exe –o setproperty –pn large–file–chunk–size –pv <size in bytes>
More on this command is available at Large-file-chunk-size: Stsadm property (Office SharePoint Server)
See What is the maximum value one can set for the Large-file-chunk-size ?
Increase the execution timeout for the upload page (upload.aspx) to prevent timeouts on the page. The default timeout for ASP.NET 2.0 is 110 seconds, so any uploads that are taking longer than that will result in a request failure. Add the executionTimeout value to web.config in the 'C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS' folder and the ‘C:\Inetpub\wwwroot\wss\VirtualDirectories\<Virtual Directory>' folder.
Existing code
<location path="upload.aspx">
<system.web>
<httpRuntime maxRequestLength="2097151" />
</system.web>
</location>
Replacement code
<location path="upload.aspx">
<system.web>
<httpRuntime executionTimeout="999999" maxRequestLength="2097151" />
</system.web>
</location>
Existing line : <httpRuntime maxRequestLength="51200" />
Replacement line : <httpRuntime executionTimeout="999999" maxRequestLength="51200" />
<httpRuntime
maxRequestLength="51200"
/>
Antivirus Exclusions
Make sure you have added Antivirus exclusions as per http://support.microsoft.com/kb/952167
You can also verify this from the web.config file
ASP.NET session state enables you to store and retrieve values for a user as the user navigates the different ASP.NET pages that make up a Web application. HTTP is a stateless protocol, meaning that your Web server treats each HTTP request for a page as an independent request; by default, the server retains no knowledge of variable values used during previous requests. ASP.NET session state identifies requests received from the same browser during a limited period of time as a session, and provides the ability to persist variable values for the duration of that session.
See ASP.NET Session State for more information
Explorer view or Web client issues
While trying to use the explorer view, you may see the following error despite making the aforementioned changes
“Error 0x800700DF: The file size exceeds the limit allowed and cannot be saved” message
If this is the case then the issue is most likely caused by a local restriction set on Web Client service. By default, Web Client file size limit is set to around 47 Mb. To increase this limit:
The following features do not support files larger than 50 MB
NOTE:
SharePoint 2010, SharePoint, MOSS 2007, WSS 3.0, Large File Upload, HTTP 404, An unexpected error has occurred, the page cannot be displayed, request time out