我正在使用.net Web Api爲我的數據網格獲取數據。呼叫是通過Ajax調用了這樣的從Web API獲取大型JSON
$.ajax({
type: 'GET',
dataType: 'json',
contentType: "application/json; charset=utf-8",
url: ReportURL, // "api/AppData/InvoiceReport/10"
success: function (mydata) {
console.log(mydata);
createReportGrid(myData); // this function creates a KENDO grid
},
error: function (error) {
alert(error);
}
});
在Web API方法看起來這
[HttpGet]
public HttpResponseMessage InvoiceReport(int Id)
{
// some llogic of data retrieving
// objReportDataList is of Type List<vmReport>
// thisstructure contains a DataTable, and 2 more list type
return Request.CreateResponse(HttpStatusCode.OK, objReportDataList);
}
這些調用工作完美的行計數約爲100K行
Web Api完美序列化。但是,當行數超過200K我得到500內部服務器錯誤 堆棧跟蹤告訴「系統OutOfMemoryException異常,發生功能於mscorlib程序,DLL」
注意 - 我不能使用服務器分頁得到只有很少的數據。這百萬行數據正在處理ASP.NET Webforms應用程序。我們已經遷移到MVC模式,並使用WebApi來獲取數據,但出現此錯誤。 PS - 我已經嘗試了很多很多解決方案,但無奈
請指導我得到這個錯誤刪除,我的報告走了
檢查web表單解決方案的Web.config。我敢打賭,那裏有一個設置。這聽起來像是一個配置問題。除了這個事實,這是你已經知道的大量數據。 – beautifulcoder
我懷疑web.config有任何設置,可以避免內存不足的錯誤...雖然我可能是錯的。 –
web.config有JSON限制設置....我使用JSON.NET序列化對象。數據是我知道的。當它可以產生200K記錄時,爲什麼不進一步? –