C# 接收 java webservices接口返回的Byte[] 数组时,大于90M报错System.OutOfMemoryException 求高手解答 155
捕捉到System.OutOfMemoryExceptionHResult=-2147024882Message=引发类型为“System.OutOfMemoryExce...
捕捉到 System.OutOfMemoryException
HResult=-2147024882
Message=引发类型为“System.OutOfMemoryException”的异常。
Source=mscorlib
StackTrace:
在 System.Text.StringBuilder.set_Length(Int32 value)
在 System.Xml.XmlTextReaderImpl.ParseText()
在 System.Xml.XmlTextReaderImpl.ParseElementContent()
在 System.Xml.XmlTextReaderImpl.Read()
在 System.Xml.XmlTextReader.Read()
在 System.Xml.XmlTextReaderImpl.InitReadElementContentAsBinary()
在 System.Xml.XmlTextReaderImpl.ReadElementContentAsBase64(Byte[] buffer, Int32 index, Int32 count)
在 System.Xml.XmlTextReader.ReadElementContentAsBase64(Byte[] buffer, Int32 index, Int32 count)
在 System.Xml.Serialization.XmlSerializationReader.ReadByteArray(Boolean isBase64)
在 System.Xml.Serialization.XmlSerializationReader.ToByteArrayBase64(Boolean isNull)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderLWFDService.Read15_getGRIB2DataResponse()
在 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer15.Deserialize(XmlSerializationReader reader)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 展开
HResult=-2147024882
Message=引发类型为“System.OutOfMemoryException”的异常。
Source=mscorlib
StackTrace:
在 System.Text.StringBuilder.set_Length(Int32 value)
在 System.Xml.XmlTextReaderImpl.ParseText()
在 System.Xml.XmlTextReaderImpl.ParseElementContent()
在 System.Xml.XmlTextReaderImpl.Read()
在 System.Xml.XmlTextReader.Read()
在 System.Xml.XmlTextReaderImpl.InitReadElementContentAsBinary()
在 System.Xml.XmlTextReaderImpl.ReadElementContentAsBase64(Byte[] buffer, Int32 index, Int32 count)
在 System.Xml.XmlTextReader.ReadElementContentAsBase64(Byte[] buffer, Int32 index, Int32 count)
在 System.Xml.Serialization.XmlSerializationReader.ReadByteArray(Boolean isBase64)
在 System.Xml.Serialization.XmlSerializationReader.ToByteArrayBase64(Boolean isNull)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderLWFDService.Read15_getGRIB2DataResponse()
在 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer15.Deserialize(XmlSerializationReader reader)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 展开
2个回答
展开全部
BasicHttpBinding bind = new System.ServiceModel.BasicHttpBinding(BasicHttpSecurityMode.None);
bind.AllowCookies = true;
bind.OpenTimeout = new TimeSpan(0, 0, 60);
bind.CloseTimeout = new TimeSpan(0, 0, 60);
bind.SendTimeout = new TimeSpan(0, 0, 300);
bind.ReceiveTimeout = new TimeSpan(0, 0, 300);
bind.MaxReceivedMessageSize = int.MaxValue;//这几个属性设置一下,或者你可以设置为long.MaxValue
bind.ReaderQuotas.MaxStringContentLength = int.MaxValue;//这几个属性设置一下
bind.ReaderQuotas.MaxDepth = int.MaxValue;//这几个属性设置一下
bind.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;//这几个属性设置一下
EndpointAddress address = new EndpointAddress(url);
//像下面这样实例化你的C# webservice代理类
YourProxyClient svcClient = new YourProxyClient(bind, address);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询