2012-11-22 30 views
3

我在Web Reference上調用了一個服務,它接收到一個對象列表List<T>
它可以很好的列表到大約13000,但是當長度列表超過13000並且服務被調用它會拋出以下錯誤:
底層連接已關閉:接收時發生意外錯誤。在接收一個字符串並返回一個對象的一個​​長長的清單(你可以看到一個服務:調用Web參考服務時收到一長串對象的錯誤

我也有一個錯誤非常相似(連接被意外關閉基礎連接已關閉。) here),我已經解決它在web.config中,但它並沒有解決接收列表作爲參數的服務錯誤,它只能用於返回對象的長列表

I有這個綁定:

<binding name="customBasicHttp" closeTimeout="00:01:00" 
    openTimeout="00:01:00" receiveTimeout="00:10:00" 
    sendTimeout="00:01:00" allowCookies="false" 
    bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
    maxBufferSize="67108864" maxBufferPoolSize="67108864" 
    maxReceivedMessageSize="67108864" messageEncoding="Text" 
    textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> 
    <readerQuotas maxDepth="32" maxStringContentLength="67108864" 
     maxArrayLength="67108864" maxBytesPerRead="5242880" 
     maxNameTableCharCount="67108864" /> 
    <security mode="None" /> 
</binding> 

而這在行爲:

<behavior name="EndpointBehaviour"> 
    <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
</behavior> 

我需要能夠發送對象的一個​​長長的清單作爲參數傳遞給服務的Web引用

+1

您需要使用WCF流傳輸大量數據從/到WCF服務,因爲它在這裏提到http://stackoverflow.com/questions/4304035/large-data-transfer-using-wcf –

+0

僅供參考,你是不使用「Web參考」。您正在使用「服務參考」。別擔心 - 這是正確的做法,你只是使用了錯誤的術語。 –

+1

您是否增加了客戶端的配額? – paramosh

回答

0

如果你拆你的大陣對象在3或4部分,每次通過Web服務發送其中的一個?