c# - 更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxArrayLength 属性

原文 标签 c# web-services sharepoint bytearray

向 C# 服务发送(或接收)字节数组时出现以下异常。

There was an error deserializing the object of type System.Byte[]. 
The maximum array length quota (16384) has been exceeded while reading XML data. 
This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. 
Line 6, position 34838.'.  
Please see InnerException for more details

据我所知,XmlDictionaryreader 是由网络服务自动创建的。

那么,如何更改“MaxArrayLength”属性?

这是实现代码:
    public string addFile(string sharePointServer, string documentLibrary, 
                          byte[] content, string fileName) 
    {
        try
        {
            SPWeb spWeb = new SPSite(sharePointServer).OpenWeb();
            SPFolder spFolder = spWeb.GetFolder(documentLibrary);
            SPFileCollection spFileCollection = spFolder.Files;
            SPFile spFile = spFileCollection.Add(fileName, content, true);
            return spFile.TimeCreated.ToLongDateString() + "::" + spFile.Title;
        } 
            catch (Exception ex) 
        {
            throw ex;
        }
    }

上传小于 16kb 的文件。

大于 16kb 的文件不是。

下载大于 10mb 的文件没有问题。

该属性在哪里配置?

最佳答案

它是 WCF 服务吗?如果是这样,您可以更改绑定(bind)中的 maxarraylength,如此 SO 帖子所示:

post

附言当有可以上传文件的 OOTB Sharepoint 服务时,为什么要使用自定义服务?即本文中的 Lists.asmx :

article

关于c# - 更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxArrayLength 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1035600/

相关文章:

c# - Microsoft Dynamics CRM 2011使用什么Web框架?

c# - 从反射调用 Func<T, TResult>

c# - 如何在NANT或csc.exe中包含对Web服务的引用?

java - 从JavaScript(AJAX)调用和使用JBoss Web服务

c# - 从C#代码配置Web服务端点和协定?

c# - 以编程方式将用户添加到列表

c# - 如何确定一个类型是否是一个集合类型?

c# - 为什么C#没有像VB那样的Handles子句?

java - Axis Web服务挂起,因为没有返回连接关闭

wcf - 如何在.NET 3.5运行时中的Visual Studio 2010 SP1中启动WCF服务主机?