2013-07-24 2 views
0

Я использую C# (.NET 4) для создания и возврата PDF-файла из файла Crystal RPT, входящего в состав моего приложения. Он работает с перерывами, но с трудом медленно генерирует PDF (иногда он вообще не заканчивается). Любые советы по приведенному ниже коду могут указывать на меня в правильном направлении?.NET - потоковый PDF из файла RPT болезненно медленный

// POST: /API/GetReport 
[HttpPost] 
public ActionResult GetReport() 
{ 
    BoolResponse response = new BoolResponse { }; 
    string evalID = Request["evalID"] ?? ""; 
    if (evalID != "" && UserCanViewEval(evalID)) { 
     ReportClass rptH = new ReportClass(); 
     try 
     { 

      ParameterField paramField = new ParameterField(); 
      ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue(); 
      ParameterValues paramValues = new ParameterValues(); 

      rptH.FileName = Server.MapPath("~/Content/Reports/Eval.rpt"); 
      rptH.Load(); 
      rptH.SetParameterValue("EvalID", evalID); 

      Stream stream = rptH.ExportToStream(ExportFormatType.PortableDocFormat); 
      stream.Seek(0, System.IO.SeekOrigin.Begin); 

      return new FileStreamResult(stream, "application/pdf"); 
     } 
     catch (Exception e) 
     { 
      response.errors = e.Message; 
      return Json(response, JsonRequestBehavior.AllowGet); 
     } 
     finally { 
      rptH.Close(); 
      rptH.Dispose(); 
     } 
    } 
    else { 
     return View(); 
    } 
} 

ответ

0

Похоже, мне нужно поговорить с нашим докладчиком. Мы выделили причину медленности либо самому файлу RPT, либо запросам в нем. Я попросил его запустить файл RPT непосредственно из его среды разработки (вне моего приложения .NET целиком), и он выполнил то же самое.

Я предполагаю, что запросы, собранные вместе с графическим интерфейсом в Crystal (автором отчета), не очень эффективны, так как остальная часть моего приложения молниеносно.

Смежные вопросы