我们的应用程序池每天会回收数次。我很确定这是因为它达到了内存限制。我也很确定它不应该达到 ~3GB 的内存限制。我尝试使用 WinDbg 分析内存转储,但收效甚微。我以后可能会再试一次。然而,使用 DebugDiag 给了我一些很好的数据可视化效果,并且已经导致了一些改变,减少了它的回收次数。一份让我有点困惑和担心的报告是 HttpContext 报告。它显示了一些这样的输出:
HttpContext Timeout Completed RunningSince ThreadId ReturnCode Verb RequestPath+QueryString
0x02374c94 110 Sec No 995 Sec --- 302 GET /Loans/Details/529146/517006
0x02472a44 110 Sec No 993 Sec --- 200 GET /Login ReturnUrl=%2fLoans%2fDetails%2f529146%2f517006
0x024d2f94 110 Sec No 979 Sec --- 302 POST /Loans/UpdateDealer
0x025773c0 110 Sec No 951 Sec --- 302 GET /Applicants
0x025d6bb4 110 Sec No 951 Sec --- 200 GET /Login ReturnUrl=%2fApplicants
0x025f5adc 110 Sec No 935 Sec --- 302 GET /Applicants/Details/537358
0x02654708 110 Sec No 935 Sec --- 200 GET /Login ReturnUrl=%2fApplicants%2fDetails%2f537358
0x026b1bb4 110 Sec No 926 Sec --- 200 POST /Loan/InsertLoanChecklistItem
0x027710dc 110 Sec No 914 Sec --- 200 GET /Applicants
0x02779320 110 Sec No 915 Sec --- 302 POST /Login ReturnUrl=%2fApplicants
0x02797448 110 Sec No 914 Sec --- 200 GET /Loans/Details/523729/526198
0x02867070 110 Sec No 911 Sec --- 200 POST /Loans/UpdateAmount
当然,报告中还有更多行。我真的有运行了 995 秒(约 15 分钟)但仍未完成的请求吗?他们只是挂在那里吗?他们在等待其他事情完成吗?我不确定我什至可以相信它,更不用说开始诊断它了。其他人可以给我一些关于如何解释这些数据的见解吗?