.NET Core 6+Oracle页面绑定数据时出现Out of Memory问题求助
.NET Core 6 + Oracle 项目内存不足(Out of Memory)问题排查求助
本地服务器触发Out of Memory错误,场景是在.NET Core 6结合Oracle的项目中,Index页面绑定数据时,部分数据显示后几秒就出现该错误。
已经尝试过官方文档提供的所有解决方案,也通过谷歌搜索寻求办法,但都没能解决问题。当前查询返回的数据量为22358行,还尝试在web.config文件中添加了<requestLimits maxAllowedContentLength="2147483648" />配置,问题依旧存在。
后端C#代码
public IActionResult Index() { var unitcode = HttpContext.Session.GetString("UnitCode"); CommonViewModel.EmpMstslist = new List<EmpMst>(); try { CommonViewModel.EmpMstslist = GetAllEmp(); }catch(Exception ex) { } return View(CommonViewModel); } public IEnumerable<EmpMst> GetAllEmp() { var unitcode = HttpContext.Session.GetString("UnitCode"); IEnumerable<EmpMst> empList; string query = "select EM_PNO,EM_NAME,EM_PASS,EM_STATUS,EM_HNAME,UNIT_CD from emp_mst where UNIT_CD ='" + unitcode + "'"; DataTable table = _context.GetSQLQuery(query.ToString()); empList = (from DataRow dr in table.Rows select new EmpMst() { EmPno = Convert.ToString(dr["EM_PNO"] != DBNull.Value ? Convert.ToString(dr["EM_PNO"]) : ""), EmHname = Convert.ToString(dr["EM_HNAME"] != DBNull.Value ? Convert.ToString(dr["EM_HNAME"]) : ""), EmName = Convert.ToString(dr["EM_NAME"] != DBNull.Value ? Convert.ToString(dr["EM_NAME"]) : ""), EmStatus = Convert.ToString(dr["EM_STATUS"] != DBNull.Value ? Convert.ToString(dr["EM_STATUS"]) : ""), UnitCd = Convert.ToString(dr["UNIT_CD"] != DBNull.Value ? Convert.ToString(dr["UNIT_CD"]) : ""), EmPass = Convert.ToString(dr["EM_PASS"] != DBNull.Value ? Convert.ToString(dr["EM_PASS"]) : "") }).OrderByDescending(x => x.EmName).ToList(); return empList; }
前端Razor视图代码
<table class="table table-striped table-hover" id="HrmsGrid"> <thead> <tr> <th> Unit Code </th> <th> Employee Personal No. </th> <th> Employee Name </th> <th> Employee Pass </th> <th> Employee HName </th> <th> Employee Status </th> <th class="table_cell">Action</th> </tr> </thead> <tbody> @foreach (var item in Model.EmpMstslist) { <tr> <td>@Html.DisplayFor(modelItem => item.UnitCd )</td> <td>@Html.DisplayFor(modelItem => item.EmPno)</td> <td>@Html.DisplayFor(modelItem => item.EmName )</td> <td>@Html.DisplayFor(modelItem => item.EmPass)</td> <td>@Html.DisplayFor(modelItem => item.EmHname)</td> <td>@Html.DisplayFor(modelItem => item.EmStatus )</td> <td> <a asp-area="FASADM" asp-controller="FASM014" asp-action="Edit" asp-route-emp="@item.EmPno" asp-route-UnitCode="@item.UnitCd" class="addnewitem glpicon @Model.Edit" data-toggle="modal"><i class="far fa-edit" data-toggle="tooltip" title="" data-original-title="Edit" onclick="SHOW_TR_Function('traddpanelEdit','traddpanel')"></i></a> <a class="delete glpicon @Model.Delete" style="cursor:pointer;" data-toggle="modal" onclick="divShow('/FASADM/FASM014/DeleteConfirmed?emp=@item.EmPno&&unitcd=@item.UnitCd')"><i class="far fa-trash-alt" data-toggle="tooltip" title="" data-original-title="Delete"></i></a> </td> </tr> } </tbody> </table>
内容的提问来源于stack exchange,提问作者Varun
相关产品推荐
相关产品推荐

