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



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

我假设设置可能已经保存在内存中,所以需要一个应用程序重置,但我不知道该重置什么。我试过重置不同的Sharepoint服务。我试过在IIS中重置Sharepoint网站。没有什么帮助。

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

感谢您的帮助。

问候。

我找到了这个帮助我解决这个问题的TechNet论坛条目:

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

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

告诉Asp。
Ø编辑所有网页。添加元素''所涉及的配置文件。
当你完成后,你的加法应该看起来像下面的例子。Ø 2147483647字节等于1.99 GB
<system.web>
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="2147483647" requestLengthDiskThreshold="2147483647" executionTimeout="18000"/></system.web>

告诉IIS 7.0及更高版本按照以下步骤增加文件大小
编辑所有网页。添加元素''所涉及的配置文件。
当你完成后,你的加法应该看起来像下面的例子。<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>

我希望这对你有帮助!

这不是SharePoint的问题或硬限制。这是为保护SharePoint基础架构而设置的可操作上传限制。操作上传限制为2mb,二进制文件上传限制为50mb。

目前有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:testtest.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。

根据您发送的链接,获得所需内容的正确方法应该是这样的:

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站点,您声称它不起作用…

相关内容

  • 没有找到相关文章

最新更新