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)
展开
 我来答
刷新①丅5e6
2015-07-29 · TA获得超过4333个赞
知道大有可为答主
回答量:1499
采纳率:64%
帮助的人:596万
展开全部
                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);
更多追问追答
追问
我的webservice接口类里没有(bind, address)实例化传这两个参数的构造方法。
追答

那是因为你添加服务引用的方式不对

百度网友ce7f3ccb4
2015-07-29 · TA获得超过1950个赞
知道大有可为答主
回答量:2299
采纳率:0%
帮助的人:1903万
展开全部
你这个不能一次系读取,要分段或分包读取!!
追问
但是webservices接口就是一次返回所有的BYTE[] 数组,怎么分段读取呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式