servicestack,soap1.2,C#,servicestack,Soap1.2" /> servicestack,soap1.2,C#,servicestack,Soap1.2" />

C# ServiceStack:读取XML数据时已超过最大数组长度配额(16384)

C# ServiceStack:读取XML数据时已超过最大数组长度配额(16384),c#,servicestack,soap1.2,C#,servicestack,Soap1.2,我已设置ServiceStack为我的MVC4网站提供web服务。我将只在web服务中使用Soap1.2,到目前为止,它运行良好 除非我试图发送的字节数组太大,否则会出现以下错误: 读取XML数据时已超过最大数组长度配额(16384)。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象的MaxArrayLength属性来增加此配额 在客户端,我已经为绑定设置了readerquota,它似乎正确地选择了它,所以问题似乎出现在服务器端。通常会在web.conf

我已设置ServiceStack为我的MVC4网站提供web服务。我将只在web服务中使用Soap1.2,到目前为止,它运行良好

除非我试图发送的字节数组太大,否则会出现以下错误:

读取XML数据时已超过最大数组长度配额(16384)。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象的MaxArrayLength属性来增加此配额

在客户端,我已经为绑定设置了readerquota,它似乎正确地选择了它,所以问题似乎出现在服务器端。通常会在web.config中为web服务添加绑定设置,但我不确定如何为ServiceStack添加绑定设置

如果是ServiceStack导致了问题的话

如何将大量数据发送到使用ServiceStack创建的Soap1.2Web服务?(不幸的是,通过使用字节数组)

如值所示,可以在应用程序初始化代码中指定:

DataContractSerializer.Instance=新的DataContractSerializer(新的XmlDictionaryReaderQuotas
{  
MaxStringContentLength=/*新值*/;
};

检查这是否能解决您的问题:谢谢cvbarros。您是否有一个示例,说明如何在不更改ServiceStack代码的情况下设置DataContractSerializer实例?我假设它必须在配置中完成?我似乎无法设置它。您只需在应用程序初始化代码(引导)中完成即可:
DataContractSerializer.Instance=new DataContractSerializer(new XmlDictionaryReaderQuotas{MaxStringContentLength=/*new value*/};
,有效地设置了singleton实例。非常好!感谢cvbarros。我将其添加到init中,并将MaxArrayLength、MaxBytesPerRead和MaxNameTableCharCount设置为更大的值(我将不得不对这些值进行一些处理,以使它们变得完美)但它现在起作用了。谢谢Scott。我将其标记为已回答。