سؤال

I have a Windows Application that saves .pdfs to a SharePoint Document Library. It works fine except this one file. Whenever I use SaveBinaryDirect with this 10.1MB file I get the following exception:

System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.IO.IOException: Unable to read data from the transport connection: An established connection was aborted by the software in your host machine. ---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine
   at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute()
   at Microsoft.SharePoint.Client.File.SaveBinary(ClientContext context, String serverRelativeUrl, Stream stream, String etag, Boolean overwriteIfExists, SaveBinaryCheckMode checkMode)
   at Microsoft.SharePoint.Client.File.SaveBinaryDirect(ClientContext context, String serverRelativeUrl, Stream stream, Boolean overwriteIfExists)
   at BKWatch.BKWatchViewModel.UploadDocument(String siteURL, String documentListName, String documentListURL, String documentName, Byte[] documentStream, Int64 AccountId, String DebtorName, Nullable`1 Pages, String Title) 

I have already tried the following:

clientContext.PendingRequest.RequestExecutor.WebRequest.KeepAlive = false;

System.Net.ServicePointManager.MaxServicePointIdleTime = 600000;
 clientContext.RequestTimeout = 600000;

Increasing max size in SharePoint - already at 50 MB Increasing max size in IIS web.config - Already at 2GB

Thanks.

هل كانت مفيدة؟

المحلول

Well after a couple long phone conversations with Microsoft, they think there is a bug in the SaveBinaryDirect code and recommended I use the ClientObject.Add functionality instead. Seems to be working so far.

نصائح أخرى

I have encountered this problem with Microsoft.SharePoint.Client.File.SaveBinaryDirect when uploading a number of big files in a row.

The fix for this, is on each time you are using SaveBinaryDirect, wrap it with a try-catch, and catch System.Net.WebException.

once Webexception is caught, run the same SaveBinaryDirect command you ran before, and it should work.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top