You can upload files to SharePoint using different protocols. In this article I will focus only on the classical web based upload (either Drag and Drop, or Upload Document option). The out of the box settings SharePoint comes with does not affect for example long running uploads performed via OneDrive for Business client, but for sure a long running upload will fail if is performed via browser.
Because out of the box IIS & SharePoint are not tuned properly!
What do I mean by long running uploads? Let’s suppose the network connectivity one user has with the SharePoint 2013 server is 1 Mbps, is constant and stable. He is trying to upload a 730 MB file using the web based upload. With the out of the box settings, the upload will fail after 25 minutes.
And here is in pictures what I am talking about:
How to fix it?
OK – this article is not talking about how to modify the “Maximum Upload Size”. Let’s be serious, I will not cover such basic setting. This article is for those who tried almost everything and are ready to give up.
1. Properly configure the IIS web site connection time-out setting.
Go into the IIS console and for each affected web site modify the Connection Time-out (seconds) settings – set it to 120. Perform this for each Web Front End server part of your SharePoint farm. In case you published your SharePoint farm through an ARR NLB, make sure the IIS part of the ARR is also configured with same settings.
Start -> Administrative Tools -> Internet Information Services (IIS) Manager -> select the web site you want to configure -> click Advanced Settings… (right side of the console) -> Connection Time-out (seconds) -> set it to 120 -> click OK.
2. Adjust the Web Page Security Validation associated to you SharePoint Web Application.
Central Administration -> Manage web applications -> select the affected SharePoint Web Application -> click General Settings -> Web Page Security Validation -> Security validation expires: Never.
3. Adjust the C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\web.config settings.
The web.config located on C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\LAYOUTS controls the behavior of the drag & drop upload. Locate all the entries where executionTimeout is defined and adjust the value to 86400. Yes, I recommend for all entries. In case you deal with low bandwidth clients, all the SharePoint features should take in consideration long running operations. Perform this for each Web Front End server part of your SharePoint farm.
4. Adjust the SharePoint Web Site web.config.
Locate the web.config part of each SharePoint site affected by the long running uploads/downloads and adjust all settings where executionTimeout is defined. Set the new value to 86400. Perform this for each Web Front End server part of your SharePoint farm.
5. Adjust the IIS App Pool Recycling and Process Model settings.
Start -> Administrative Tools -> Internet Information Services (IIS) Manager -> Application Pools -> select the application pool associated to the SharePoint site -> right click Advanced Settings… -> Regular Time Interval (minutes) -> set it to 0 -> click OK.
Start -> Administrative Tools -> Internet Information Services (IIS) Manager -> Application Pools -> select the application pool associated to the SharePoint site -> right click Advanced Settings… -> Idle Time-Out (minutes) -> set it to 0 -> click OK.
PS: Yes, the SharePoint 2013 drag & drop upload has issues with the long running uploads -> when the upload finishes, the progress bar is filled and the file is shown with the spinning wheel. It may look as “upload in progress”, but actually the upload is completed. If you refresh the page you will see the file/files being uploaded. This is a software bug and I will open a Microsoft Support Call and request to have it fixed.