w3wp.exe增加并激发内存输出?

时间:2015-01-05 08:49:44

标签: asp.net sql-server crystal-reports

我正在使用Crystal Viewer在asp.net中显示报告。我注意到每次查看报告时,w3wp的内存使用量都会增加,并且在报告生成完成后不会下降。如果我继续运行相同的报告,内存会继续增加。这看起来不对。难道我做错了什么?这是我的代码:

  protected void BtnOuvrirRapport(object sender, EventArgs e)
     {
          ReportDocument rptdoc = new ReportDocument();
          examenTableAdapter adapter = new examenTableAdapter();
          DataTable dt = adapter.GetData();
          rptdoc.Load(Server.MapPath("NB_EXAMNE_Report.rpt"));
          rptdoc.SetDataSource(dt);
          rptdoc.RecordSelectionFormula = "{examen.study_rv_date}   in {?fromdate} to  {?todate}";
          Session["rd"] = rptdoc;
          rptdoc.Refresh();
      }


 protected void Page_Load(object sender, EventArgs e)
  {
    Response.AppendHeader("Refresh", "900");
    ReportDocument rd = (ReportDocument)Session["rd"];
    CrystalReportViewer1.ReportSource = rd;
    CrystalReportViewer1.DataBind();
    CrystalReportViewer1.RefreshReport();
    CrystalReportViewer1.ReuseParameterValuesOnRefresh = true;
    GC.Collect();
  }

1 个答案:

答案 0 :(得分:0)

w3wp将是IIS端。

对于IIS,应用程序池。你可以进行必要的调整。

在达到最大虚拟内存时或在几分钟内回收。 recycle将创建一个新的w3wp进程来处理新的web请求,旧的一个进程一旦完成它将杀死它。

请注意: 手动回收应用程序池将破坏所有会话。意味着所有会话都将变为空。 并且不用担心w3wp。垃圾收集器有时会减少使用量。