1

On our SharePoint 2013 Enterprise install (SP1), we are experiencing issues when uploading files greater than 180MB.

When the dialog box states that the file is being uploaded, after approx 60 seconds, we get a "this page cannot be displayed" message.

If you close the dialog and then refresh the document library, the file has been upload correctly and it is not corrupt.

In the log files, we see a lot of messages like this:

<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent
/TraceRecord" Severity="Error">
<TraceIdentifier>http://msdn.microsoft.com/en-GB/library/System.ServiceModel.Diagnostics.ThrowingException.aspx</TraceIdentifier>
<Description>Throwing an exception.</Description>
<AppDomain>/LM/W3SVC/2/ROOT/5a728ef8095342288c685a75ebe06adc-1-130591597872468420</AppDomain>
<Exception>
<ExceptionType>System.TimeoutException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>The socket was aborted because an asynchronous receive from the socket did not complete within the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout.</Message>
<StackTrace>   at System.ServiceModel.Channels.StreamConnection.EndRead()     
at System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(Object state)     
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)     
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)     
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult)     
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)     
at System.ServiceModel.Channels.ConnectionStream.IOAsyncResult.OnAsyncIOComplete(Object state)     
at System.ServiceModel.Channels.SocketConnection.OnReceiveAsync(Object sender, SocketAsyncEventArgs eventArgs)     
at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncFailure(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)     
at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)     
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)  </StackTrace>
<ExceptionString>System.TimeoutException: The socket was aborted because an asynchronous receive from the socket did not complete within the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout. 
---&amp;gt; System.IO.IOException: The read operation failed, see inner exception. 
---&amp;gt; System.TimeoutException: The socket was aborted because an asynchronous receive from the socket did not complete within the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout. 
---&amp;gt; System.Net.Sockets.SocketException: The I/O operation has been aborted because of either a thread exit or an application request     
at System.ServiceModel.Channels.SocketConnection.HandleReceiveAsyncCompleted()     
at System.ServiceModel.Channels.SocketConnection.OnReceiveAsync(Object sender, SocketAsyncEventArgs eventArgs)     
--- End of inner exception stack trace ---     
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)     
at System.ServiceModel.Channels.ConnectionStream.ReadAsyncResult.End(IAsyncResult result)     
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult)     
--- End of inner exception stack trace ---     
at System.Net.Security.NegotiateStream.EndRead(IAsyncResult asyncResult)     
at System.ServiceModel.Channels.StreamConnection.EndRead()     
--- End of inner exception stack trace ---
</ExceptionString>

So far I have done the following, to try and resolve the issue:

  • Increase maximum file upload limit to 250MB (Which is was)
  • Amended the web.config httpRuntime executionTimeout to 999999 in
    C:\Inetpub\wwwroot\wss\VirtualDirectories\
  • Amended the web.config httpRuntime maxRequestLenght to 524288000 (500MB) in
    C:\Inetpub\wwwroot\wss\VirtualDirectories\
  • Modified the web.config in
    c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\template\layouts
    and added an executionTimeout of 99999
  • Modified the web.config in
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\template\layouts
    and added an executionTimeout of 99999
  • Increased the security validation from 30 mins to 60 mins (although it's not taking 30 mins to upload a file, so this is irrelevant)
  • Via the SharePoint 2013 Management Shell
    • Modified the "DistributedLogonTokenCache" RequestTimeout from 20 to 300
    • Modified the "DistributedViewStateCache" RequestTimeout from 20 to 300
    • Modified the "DistributedLogonTokenCache" ReceiveTimeout from 60000 to 500000
    • Modified the "DistributedViewStateCache" ReceiveTimeout from 60000 to 500000

I have at all times restarted the server after each change, and tried to upload a file.

I can conclude that files lower than 180MB in size load fine, but over this and I see the error (file size ranging from 180mb to 210mb)

Our DBA has checked SQL and can't see any issues being reported, so I'm at my wits end and would like to know if there's anything else I can try.

Edit: Just to clairfy, the following edits in the web.config stored in

    C:\Inetpub\wwwroot\wss\VirtualDirectories\<Virtual Directory> 

have been carried out:

  • httpRuntime executionTimeout to 999999
  • httpRuntime maxRequestLenght to 524288000 (500MB)

I have also followed the advice here: https://stackoverflow.com/questions/288612/how-to-increase-the-max-upload-file-size-in-asp-net and the maximum allowed content length is set to 2147483647

1

Have you tried to set maxAllowedContentLength (system.webServer\security\requestFiltering\requestLimits) in web.config? See here for IIS 7+

  • Hey pholpar - I've checked and in intmgr this is currently set to 2147483647 (2gb) and is also present in the web.config file. – Rob Sked Nov 13 '14 at 11:44
0

Open the web.config

C:\Inetpub\wwwroot\wss\VirtualDirectories\<Virtual Directory> 

and set

<httpRuntime maxRequestLength="51200" /> 

to

<httpRuntime executionTimeout="999999" maxRequestLength="51200" />
  • As per my original question, you can see that I already tried this and it didn't work. – Rob Sked Nov 13 '14 at 11:14
  • @RobSked did you updated this on all front end servers? – Amal Hashim Nov 13 '14 at 11:15
  • Yes, we are running a single server WFE / App server, and a single DB backend. – Rob Sked Nov 13 '14 at 11:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.