SP2010客户端对象模型3 MB限制 – 更新maxReceivedMessageSize不会应用

我正在使用客户端对象模型与Sharepoint 2010进行交互。当我尝试使用客户端OM上载大于3 MB的文档时,它给出了错误请求错误。 微软建议这样做来解决这个问题。 我试过并更新了maxReceivedMessageSize属性。 重新启动系统后它工作正常,但不会应用于正在运行的sharepoint服务器。

我假设由于设置可能已保存在内存中,因此需要重置应用程序,但我会想出要重置的内容。 我尝试过重置不同的Sharepoint服务。 我尝试在IIS中重置Sharepoint网站。 什么都没有帮助。

另外,如果我设置了10 MB的限制,我可以上传大约7.5 MB的文件。 我认为这是因为额外的元数据(内容类型属性等)。 这是正确的行为还是我需要改变别的东西。

非常感谢任何帮助。

问候。

我发现这个TechNet论坛条目帮助我解决了这个问题:

通过执行以下步骤告诉SharePoint增加其文件大小。
Ø作为SharePoint站点管理员,访问SharePoint 2010 Management Shell
1.在“开始”菜单上,单击“所有程序”。
2.单击“Microsoft SharePoint 2010产品”。
3.单击“SharePoint 2010 Management Shell”。
Ø然后运行以下命令。

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

告诉Asp.Net按照以下步骤增加文件大小。
Ø编辑所有涉及的web.config文件,添加元素“”。
完成后,您的添加内容应如下所示。
Ø2147483647字节等于1.99 GB。

按照以下步骤,告诉IIS 7.0及更高版本以增加其文件大小。
编辑所有涉及的web.config文件以添加元素“”。
完成后,您的添加内容应如下所示。







我希望这有帮助!

这不是SharePoint的问题或严格限制。 这是为保护SharePoint基础结构而设置的操作上载限制。 虽然操作上载限制为2 MB,但二进制上载限制为50 MB。

目前有3种方法:

  1. 如您所述,增加maxReceivedMessageSize。

  2. 使用SaveBinaryDirect方法

    从SharePoint 2010开始引入了这些方法。它基本上使用分布式创作版本控制(DAV)来发出PUT请求。 使用此方法,您有50 MB的二进制上载限制。

    以下是方法#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. 如果您使用的是SharePoint 2013或更高版本,则可以使用REST API。 上传限制为2 GB。

根据您发送的链接,您需要的正确方法应该是这样的:

 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(); } 

请通过编辑您的问题来显示您的代码,并解释您重新启动的系统,然后它可以正常工作,而不是重新启动或回收您认为不起作用的SP网站…