4

我正在尝试将大于 100 MB 的文件上传到 Office 365 的 SharePoint 门户。我尝试了三种不同的方法来实现相同的目的。

  1. 复制 Web 服务以及 httpRuntime 设置,其中 maxRequestLength 设置为 2097151,executionTimeout 设置为 14400。此外,我确实尝试将 Timeout 设置为“Infinite”和“60000”。
    错误:基础连接已关闭:发送时发生意外错误。

  2. Web 客户端,使用 UploadDataAsync 方法将文件字节“PUT”到目标 URL。即使这样,httpRuntime 设置也如上所述。
    错误:无法从传输连接中读取数据:现有连接被远程主机强行关闭。

  3. HttpWebRequest, ServicePointManager.Expect100Continue 设置为 false。还尝试将 SendChunked 设置为 true 和 false。
    错误:请求被中止:请求被取消。

除了所有这些,我还添加了

protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
 System.Net.HttpWebRequest webRequest = 
  (System.Net.HttpWebRequest) base.GetWebRequest(uri);
 webRequest.KeepAlive = false;
 return webRequest;
}

在为复制服务生成的代理类中。限制是我不能使用 CSOM 上传文件。

而且每次上传请求都会超时。任何帮助将不胜感激。

提前致谢。

4

2 回答 2

1

尝试使用以下代码:-

           WebRequest webRequest = WebRequest.Create(url);
           HttpWebRequest request = (HttpWebRequest)webRequest;
           request.CookieContainer = CookieContainer;
           request.Method = "PUT";
           request.KeepAlive = true;
           request.Timeout = Timeout.Infinite;
           byte[] buffer = new byte[1024];
           using (Stream stream = request.GetRequestStream())
           {
               using (MemoryStream memoryStream = new MemoryStream(fileBytes))
               {
                   memoryStream.Seek(0, SeekOrigin.Begin);
                   for (int i = memoryStream.Read(buffer, 0, buffer.Length); i > 0;
                       i = memoryStream.Read(buffer, 0, buffer.Length))
                   {
                       stream.Write(buffer, 0, i);
                   }
               }
           }
           WebResponse response = request.GetResponse();
           response.Close();
于 2013-09-18T20:20:15.743 回答
0

您是否尝试更改默认的最大上传文件大小?您使用的是什么版本的 SharePoint?

于 2013-04-23T12:11:19.337 回答