C# ServiceStack:读取XML数据时已超过最大数组长度配额(16384)
我已设置ServiceStack为我的MVC4网站提供web服务。我将只在web服务中使用Soap1.2,到目前为止,它运行良好 除非我试图发送的字节数组太大,否则会出现以下错误: 读取XML数据时已超过最大数组长度配额(16384)。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象的MaxArrayLength属性来增加此配额 在客户端,我已经为绑定设置了readerquota,它似乎正确地选择了它,所以问题似乎出现在服务器端。通常会在web.config中为web服务添加绑定设置,但我不确定如何为ServiceStack添加绑定设置 如果是ServiceStack导致了问题的话 如何将大量数据发送到使用ServiceStack创建的Soap1.2Web服务?(不幸的是,通过使用字节数组)如值所示,可以在应用程序初始化代码中指定: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
DataContractSerializer.Instance=新的DataContractSerializer(新的XmlDictionaryReaderQuotas
{
MaxStringContentLength=/*新值*/;
};
检查这是否能解决您的问题:谢谢cvbarros。您是否有一个示例,说明如何在不更改ServiceStack代码的情况下设置DataContractSerializer实例?我假设它必须在配置中完成?我似乎无法设置它。您只需在应用程序初始化代码(引导)中完成即可:DataContractSerializer.Instance=new DataContractSerializer(new XmlDictionaryReaderQuotas{MaxStringContentLength=/*new value*/};
,有效地设置了singleton实例。非常好!感谢cvbarros。我将其添加到init中,并将MaxArrayLength、MaxBytesPerRead和MaxNameTableCharCount设置为更大的值(我将不得不对这些值进行一些处理,以使它们变得完美)但它现在起作用了。谢谢Scott。我将其标记为已回答。