【问题标题】:Sharepoint 2013 Client Object Model file larger than 2 Mb exceptionSharepoint 2013 客户端对象模型文件大于 2 Mb 异常
【发布时间】:2013-11-19 16:30:20
【问题描述】:

我是 Sharepoint 和客户端对象模型的新手。我遇到了一个问题,无法解决这个问题。我想在 Sharepoint 2013 中使用客户端对象模型上传超过 10 MB 的文件。我收到以下异常

请求消息太大。服务器不允许消息 大于 2097152 字节。

我什么都试过了。这是我做过的事情的清单

1- 更改了我本地 Web 应用程序的 web.config 文件中的设置

<system.web>
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="2147483647" requestLengthDiskThreshold="2147483647" executionTimeout="18000"/> </system.web>

<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>

2- 在我服务器上的 powershell 中运行以下命令并在 IIS 中重新启动应用程序。甚至重新启动了整个 IIS。

$ws = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$ws.ClientRequestServiceSettings.MaxReceivedMessageSize = 2147483647
$ws.Update()

这是我的代码:

private void UploadDataToSharepointTest(List<UploadData> pDataObjList)
    {
        string lServerUrl = @"http://xxxxxxx:2000/";
        string lFolderName = DateTime.Now.ToString(@"yyyyMMddHHmmss");


        ClientContext context = new ClientContext(lServerUrl);
        context.AuthenticationMode = ClientAuthenticationMode.Default;
        context.Credentials = new System.Net.NetworkCredential("user", "password", "domain");        

        Web web = context.Web;
        List docs = web.Lists.GetByTitle("ABC");
        Folder lNewFolder = web.Folders.Add(lServerUrl + "ABC/" + lFolderName + "/");
        docs.Update();

        int fileIndex = 1;
        foreach (var item in pDataObjList)
        {
            FileCreationInformation newFile = new FileCreationInformation();
            newFile.Content = System.IO.File.ReadAllBytes(item.CompleteFilePath);
            newFile.Url = fileIndex.ToString() + "-" + item.fileName;
            fileIndex++;

            Microsoft.SharePoint.Client.File uploadFile = lNewFolder.Files.Add(newFile);

            context.Load(uploadFile);
            context.ExecuteQuery();

            Dictionary<string, string> metadata = new Dictionary<string, string>();
            metadata.Add("Comments", item.comments);
            metadata.Add("Plan_x0020_Size", item.planSize);
            metadata.Add("Density", item.density);
            metadata.Add("First_x0020_Name", txtFirstName.Text.Trim());
            metadata.Add("Last_x0020_Name", txtLastName.Text.Trim());
            metadata.Add("Company", txtCompany.Text.Trim());
            metadata.Add("Contact", txtContact.Text.Trim());
            metadata.Add("Additional_x0020_Comments", txtAdditionalComments.Text.Trim());

            Microsoft.SharePoint.Client.ListItem items = uploadFile.ListItemAllFields;
            context.Load(items);
            context.ExecuteQuery();

            foreach (KeyValuePair<string, string> metadataitem in metadata)
            {
                items[metadataitem.Key.ToString()] = metadataitem.Value.ToString();
            }

            items.Update();
            context.ExecuteQuery();
        }

    }

注意:我可以上传小文件。

【问题讨论】:

  • 你找到解决办法了吗?

标签: sharepoint sharepoint-2010 sharepoint-2013 sharepoint-clientobject


【解决方案1】:

使用内置上传功能有文件大小限制。

要上传大文件,请使用文件流上传。

看看下面的文章:

http://blogs.msdn.com/b/sridhara/archive/2010/03/12/uploading-files-using-client-object-model-in-sharepoint-2010.aspx

【讨论】:

    【解决方案2】:

    SharePoint 允许您通过 Central Admin 进行配置,我会坚持这样做,以确保它为您做出所有适当的更改。您需要具有农场级别的权限。此外,在 SharePoint 2013 中,您可以为不同的文件类型设置不同的文件最大限制,因此请确保您的文件类型没有被任何人更改。 Different Max based on File Types

    Accessing SharePoint Webapp properties via central Admin

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多