samedi 18 avril 2015

Report Viewer slow in ASP.NET

I have a page with a Report Viewer in ASP.NET. When I built the report in SSRS, it was fast (taking 1-3 seconds).


Saving it as PDF or EXCEL is also fast:



Private Sub SetReportParameters()
'Set Processing Mode
ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote
'Set report server and report path
ReportViewer1.ServerReport.ReportServerUrl = _
New Uri("xxx")

ReportViewer1.ServerReport.ReportPath = _
"xxx"

Dim paramList As New Generic.List(Of ReportParameter)
Dim pInfo As ReportParameterInfoCollection
pInfo = ReportViewer1.ServerReport.GetParameters()

'if you have report parameters - add them here
paramList.Add(New ReportParameter("xxx", "xxx", True))
ReportViewer1.ServerReport.SetParameters(paramList)

'Process and render the report
ReportViewer1.ServerReport.Refresh()


'output as PDF
Dim returnValue As Byte()
Dim format As String = "EXCEL"
Dim deviceinfo As String = ""
Dim mimeType As String = ""
Dim encoding As String = ""
Dim extension As String = "xls"
Dim streams As String() = Nothing
Dim warnings As Microsoft.Reporting.WebForms.Warning() = Nothing

returnValue = ReportViewer1.ServerReport.Render(format, deviceinfo, mimeType, encoding, extension, streams, warnings)
Response.Buffer = True
Response.Clear()

Response.ContentType = mimeType

Response.AddHeader("content-disposition", "attachment; filename=xxx.xls")
Response.BinaryWrite(returnValue)
Response.Flush()
Response.End()
End Sub


But, if I want to show it in the page, it is TOO slow (taking more the 10 minutes to render).



Private Sub SetReportParameters()
'Set Processing Mode
ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote
'Set report server and report path
ReportViewer1.ServerReport.ReportServerUrl = _
New Uri("xxx")

ReportViewer1.ServerReport.ReportPath = _
"xxx"

Dim paramList As New Generic.List(Of ReportParameter)
Dim pInfo As ReportParameterInfoCollection
pInfo = ReportViewer1.ServerReport.GetParameters()

'if you have report parameters - add them here
paramList.Add(New ReportParameter("xxx", "xxx", True))
ReportViewer1.ServerReport.SetParameters(paramList)

'Process and render the report
ReportViewer1.ServerReport.Refresh()
End Sub


I am using:



  • SQL Server 2012

  • .NET Framework 4.5


What am I doing wrong?


Aucun commentaire:

Enregistrer un commentaire