2012-05-17 28 views
1

我試圖使用從第三方web服務的一個Web方法進入我的vb.net代碼中使用他們的.NET檢索信息API。錯誤在.NET:用盡157286400個字節允許內存大小(試圖分配10528769個字節)

當我嘗試

Dim records() As WEB_API.DBRecord 
records = api.GetView(guid, viewid, dbid, offset, 10000) 

我得到的錯誤從WebService(SOAP)說:

System.Web.Services.Protocols.SoapHeaderException: Allowed memory size of 157286400 bytes 
    exhausted (tried to allocate 10528769 bytes) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage 
    message, WebResponse response, Stream responseStream, Boolean asyncCall) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 
    at comp.WEB_API.XYZ.GetView(String db_guid, Int32 view_db, Int32 space_id, Int32 offset, Int32 count) 

有什麼我需要從我的最終解決?你認爲是什麼原因。 讓我知道我可以如何解決這個問題。 謝謝。

+0

爲10000的記錄量來獲取? –

+0

我確實給出了最大限制爲10000.而我至少有5400條記錄被拔出。 – vmh

回答

0

它是可能的錯誤是在你的第三方網絡服務發生。您正在請求大量數據,並且它們不會受到限制,並且內存不足。

+0

感謝您的快速響應。讓我檢查他們的支持團隊。 – vmh

+0

如果他們正在運行PHP的Web服務讓他們設置的ini_set(「memory_limit的」,「-1」); - 如果他們拒絕(這是難以避免的),然後告訴他們拋出一個更有意義的錯誤說,你最多隻能索要X的記錄,就是放一個合理的限度吧。 –

+0

我確實將這個問題提醒他們。但他們提出說這個問題與他們無關,並且建議不要找回。的記錄。 – vmh

0

儘量增加你的內存限制更是150MB,或試圖拔出每一次的記錄數目較少。你在使用OOM而不是使用第三方API。

+0

我們的第三方數據庫中有大約5400條記錄。它只允許我回顧約5000條記錄。我如何找回其餘的?另外,幫助我以增加內存限制的方式。謝謝。 – vmh

相關問題