SP2010 Client Object Model 3 MB limit - updating maxReceivedMessageSize doesnt get applied

空扰寡人 提交于 2019-12-01 19:26:44

I have found this TechNet Forum entry which helped me solve this problem:

Tell SharePoint to increase its file size by following the steps below.
Ø As the SharePoint Site Administrator, access the SharePoint 2010 Management Shell by
1. On the Start menu, click All Programs.
2. Click Microsoft SharePoint 2010 Products.
3. Click SharePoint 2010 Management Shell.
Ø Then run the commands below.

get-PSSnapin - Registered
Add-PSSnapin Microsoft.SharePoint.Powershell
$ws = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$ws.ClientRequestServiceSettings.MaxReceivedMessageSize = 2147483647
$ws.Update()

Tell Asp.Net to increase its file size by following the steps below.
Ø Edit all web.config files involved to add the element '<httpRuntime>'.
When you are done, your addition should look like the example below.
Ø 2147483647 bytes is equal to 1.99 GB.
<system.web>
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="2147483647" requestLengthDiskThreshold="2147483647" executionTimeout="18000"/> </system.web>

Tell IIS 7.0 and up to increase its file size by following the steps below.
Edit all web.config files involved to add the element '<requestLimits>'.
When you are done, your addition should look like the example below.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>

I hope this helps!

This is not an issue or hard limit of SharePoint. This is an operational upload limit that is set in place to protect the SharePoint infrastructure. While the operational upload limit is 2 MB, the binary upload limit is 50 MB.

There are currently 3 approaches:

  1. As you have already mentioned, increase the maxReceivedMessageSize.

  2. Use the SaveBinaryDirect methods

    These methods were introduced starting with SharePoint 2010. It basically uses Distributed Authoring Versioning (DAV) to make a PUT request. Using this approach, you have a 50 MB binary upload limit.

    Here is an example implementation of approach #2,

    string siteURL = "https://records.contoso.com";
    
    using (var context = new Microsoft.SharePoint.Client.ClientContext(siteURL))
    {
       context.Credentials = new NetworkCredential(
          "username", 
          "password", 
          "domain");
       string filePathToUpload = "C:\test\test.txt";
       context.ExecuteQuery();
    
       using (FileStream fs = new FileStream(filePathToUpload, FileMode.Open)
       {
          string targetURL = "/testsite/test.txt";
          Microsoft.SharePoint.Client.File.SaveBinaryDirect(
             context, 
             targetURL, 
             fs, 
             true);
       }
    }
    
  3. If you are using SharePoint 2013 or greater, you can use REST API. The upload limit is 2 GB.

as per the link you have sent the correct way to get what you need should be something like this:

public static void IncreaseMaxReceivedMessageSize ()
{
    SPWebService contentService = SPWebService.ContentService;

    /* Must set this to -1, else, the MaxReceivedMessageSize value for
    SPWebService.ContentService.WcfServiceSettings["client.svc"] will not be used.*/
    contentService.ClientRequestServiceSettings.MaxReceivedMessageSize = -1;

    // SPWcfServiceSettings has other Properties that you can set.
    SPWcfServiceSettings csomWcfSettings = new SPWcfServiceSettings();
    csomWcfSettings.MaxReceivedMessageSize = 10485760; // 10MB
    contentService.WcfServiceSettings["client.svc"] = csomWcfSettings;

    contentService.Update();
}

please show your code by editing your question and also explain which system you restart and then it works as opposed as restarting or recycling SP sites where you claim it does not work...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!