C# JavaScriptSerializer反序列化引发System.OutOfMemoryException

C# JavaScriptSerializer反序列化引发System.OutOfMemoryException,c#,json,C#,Json,我在获取大约17MB的PPTX文件数组时使用了下面的代码(如果任何文件小于15MB,这可以正常工作)。在jss.Deserialize行,它抛出错误“类型为'System.OutOfMemoryException'的异常” JavaScriptSerializer jss=newJavaScriptSerializer{MaxJsonLength=2147483644,RecursionLimit=100}; var requestJson=jss.Serialize(新的{serverRela

我在获取大约17MB的PPTX文件数组时使用了下面的代码(如果任何文件小于15MB,这可以正常工作)。在
jss.Deserialize
行,它抛出错误“类型为'System.OutOfMemoryException'的异常”

JavaScriptSerializer jss=newJavaScriptSerializer{MaxJsonLength=2147483644,RecursionLimit=100};
var requestJson=jss.Serialize(新的{serverRelativeUrl=serverRelativeUrl,token=token});
WebClient wClient=新的WebClient();
wClient.Headers[“Content Type”]=“text/json;charset=utf-8”;
var data=wClient.UploadData(serviceMethodURL,“POST”,Encoding.UTF8.GetBytes(requestJson));
var responseJson=Encoding.UTF8.GetString(数据);
var response=jss.Deserialize(responseJson);
有什么想法吗?我被这件事缠住了。请帮忙

我用

MethodResponse<byte[]> response = null;
using (System.IO.MemoryStream stream1 = new System.IO.MemoryStream(data))
{
    System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(MethodResponse<byte[]>));
    stream1.Position = 0;
    response = (MethodResponse<byte[]>)ser.ReadObject(stream1);
}
return response;
MethodResponse=null;
使用(System.IO.MemoryStream stream1=新的System.IO.MemoryStream(数据))
{
System.Runtime.Serialization.Json.DataContractJsonSerializer ser=新的System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(MethodResponse));
1.位置=0;
response=(MethodResponse)ser.ReadObject(stream1);
}
返回响应;

如果您使用JSON.NET进行序列化/反序列化,您可以将默认的JsonValueProviderFactory替换为一个自定义的JsonValueProviderFactory,如本文所示:Thanx sagar,但它是一个windows窗体应用程序,所以Global.asax是不可能的。@Kaushal15但是JSON.NET是…您能够切换到JSON.NET进行反序列化吗?另外,什么是
MethodResponse
generic类?
MethodResponse<byte[]> response = null;
using (System.IO.MemoryStream stream1 = new System.IO.MemoryStream(data))
{
    System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(MethodResponse<byte[]>));
    stream1.Position = 0;
    response = (MethodResponse<byte[]>)ser.ReadObject(stream1);
}
return response;