none
System.OutOfMemoryException ReportViewer VB2005 Exportar a PDF RRS feed

  • Pregunta

  • Saludos cordiales y esperando que por favor me colaboren, lo que pasa es que tengo un reporte embebido con el objeto ReportViewer en VB 2005 este reportes tenia una tabla y un grafico inicialmente y funcionaba bien auque cuando se exportaba el reporte a PDF el tamaño del archivo .pdf era muy grande casi de 150 MB, al agregar un nuevo grafico que necesito al reporte, cuando lo ejecuto funciona correctamente y exporta bien a Excel pero cuando lo exporto a PDF me genera un error System.OutOfMemoryException. Alguien me puede decir como tengo que trabajar los gráficos para que el archivo no sea tan pesado o como darle solución al inconveniente. De antemano MIL GRACIAS

    • Cambiado Fran DiazModerator jueves, 21 de julio de 2011 12:01 Es de SSRS (De:Lenguaje VB.NET)
    viernes, 18 de junio de 2010 15:29

Todas las respuestas

  • hola

    un reporte que genera una exportacion de 150Mb es enorme y muy raro

    no has probado agregar algun filtro al reporte para reducir la cantidad de informacion y que este sea mas pequeño, asi validarias si esto es lo que causa el problema

    en resumen acota la cantidad de datos, y lanza el reporte a ver si con menos info no da el problema

    ademas 150Mb no hay persona viva que pueda serle util un reporte como ese, la idea es que armes algo que sirva para el analisis

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 18 de junio de 2010 16:29
  • Buen dia Amigo, gracias por su sugerencia, le cuento que el reporte cuando se genera sin imagenes es muy liviano tanto en PDF cono en Excel ademas es de solo 20 hojas una por persona, pero si le inserto graficos y lo exporto a PDF ahi es cuando empieza a ser muy pesado, pero reitero eso solo sucede con PDF por que en Excel el tamaño es es 1 Mega.
    Denis Rivera A
    viernes, 18 de junio de 2010 16:37
  • ahh ok pesa tanto porque hay imagenes en el reporte, ahora me cierra un poco mas

    estas imagenes estan en jpg o en bmp ? lo pregunto porque peude ser que el pdf no optimice el tipo de imagen y excel si comprima por eso la diferencia en tamaño

    has realizado la prueba con imagenes pero poco registros, para detectar en cuanta cantidad es que falla, por ahi con 5 registro va bien pero con 20 da el fallo, la idea es ver en que cantidad esta el maximo soportado

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 18 de junio de 2010 16:45
  • Saludos Leonardo, le ofrezco diclpas por no explicarme bien, le cuento la estructura del reporte es asi:

    1. Tabla de empleados y sus calificaciones.

    2. Gráfico (Chart) de lineas simples, que se pinta con algunas columnas de la tabla de empleados y calificaciones.

    3. Gráfico (Chart) de lineas simples, que se pinta con otras columnas de la tabla de empleados y calificaciones.

    Estos son los res objetos del reporte; Si dejo el reporte solo la tabla funciona correctamente y al exportarlo a PDF no es pesado, si le agrego una Gráfico cuando lo exporo a PDF pero casi 150 MB pero lo exporta, cuando le agrego otra grafico que necesito agregarle ahi ya se muere y genera el error de memoria pero si lo exportamos a Excel el archivo quda de 1 MB y lastimosamente el formato en el que lo necesito es PDF. Gracias por su ayuda.


    Denis Rivera A
    viernes, 18 de junio de 2010 17:01
  • hola

    imagino qeu si prueba habilitar el segundo los graficos y quita el primero, en ese caso se genera correctamente, no ?

    es raro el error, ademas no informa mucho, simplemente un problema de memoria, que por cierto el equipo donde se genera cuanta RAM tiene ? solo para descartar no creo que sea este el problema, pero si me dcies 512 (que no creo que tengas esa cantidad) podria se el tema

    por ahi podrias evaluar en separar los reportes, generar uno con un grafico y otro con la misma info pero con el otro grafico, se que no es lo ideal pero seguro sea efectivo y funcione

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 18 de junio de 2010 17:11
  • Saludos tengo 2 GB de memoria y si de dejo un solo Chart como imagen funciona aunque el archivo PDF resultado de exportar el reportes queda muy grande aun casi de 100 MB para un reporte de 20 hojas.
    Denis Rivera A
    viernes, 18 de junio de 2010 19:42
  • Este es el error general que arroja la pagina cuano se exporta a PDF el reporte:

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.OutOfMemoryException: Se produjo una excepción de tipo 'System.OutOfMemoryException'.

    Error de código fuente:

    Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

    Seguimiento de la pila:

    [OutOfMemoryException: Se produjo una excepción de tipo 'System.OutOfMemoryException'.]
      System.IO.MemoryStream.set_Capacity(Int32 value) +63
      System.IO.MemoryStream.EnsureCapacity(Int32 value) +55
      System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count) +245
      Microsoft.ReportingServices.Rendering.ImageRenderer.CompositionPDF.AppendString(String nextString) +162
      Microsoft.ReportingServices.Rendering.ImageRenderer.CompositionPDF.EndPage() +1292
      Microsoft.ReportingServices.Rendering.ImageRenderer.CompositionPDF.SendPhysicalPages(Boolean force) +46
      Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRendererBase.ProcessPages(CompositionBase theComposition, Report theReport, Boolean needTotalPages, Int32 startPage, Int32 endPage, Boolean render) +464
      Microsoft.ReportingServices.Rendering.ImageRenderer.PdfReport.RenderReport(Report report, NameValueCollection deviceInfo, EvaluateHeaderFooterExpressions evaluateHeaderFooterExpressions, CreateAndRegisterStream createAndRegisterStreamCallback, Int32 streamPageNumber) +369
      Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRendererBase.Render(Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, EvaluateHeaderFooterExpressions evaluateHeaderFooterExpressions, CreateAndRegisterStream createAndRegisterStream) +43
    
    [ReportRenderingException: Error durante la representación del informe.]
      Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRendererBase.Render(Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, EvaluateHeaderFooterExpressions evaluateHeaderFooterExpressions, CreateAndRegisterStream createAndRegisterStream) +85
      Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderSnapshot(IRenderingExtension renderer, CreateReportChunk createChunkCallback, RenderingContext rc, GetResource getResourceCallback) +1117
    
    [WrapperReportRenderingException: Error durante la representación del informe.]
      Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderSnapshot(IRenderingExtension renderer, CreateReportChunk createChunkCallback, RenderingContext rc, GetResource getResourceCallback) +1663
      Microsoft.Reporting.LocalService.RenderWithDataCache(PreviewItemContext itemContext, ParameterInfoCollection reportParameters, IEnumerable dataSources, DatasourceCredentialsCollection credentials, IRenderingExtension renderer, ReportProcessing repProc, CreateAndRegisterStream createStreamCallback, ReportRuntimeSetup runtimeSetup) +1129
      Microsoft.Reporting.LocalService.Render(PreviewItemContext itemContext, Boolean allowInternalRenderers, ParameterInfoCollection reportParameters, IEnumerable dataSources, DatasourceCredentialsCollection credentials, CreateAndRegisterStream createStreamCallback, ReportRuntimeSetup runtimeSetup, ProcessingMessageList& warnings) +263
      Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, CreateAndRegisterStream createStreamCallback, Warning[]& warnings) +228
    
    [LocalProcessingException: Se ha producido un error durante el procesamiento local de informes.]
      Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, CreateAndRegisterStream createStreamCallback, Warning[]& warnings) +263
      Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, String& mimeType, String& encoding, String& fileNameExtension, String[]& streams, Warning[]& warnings) +144
      Microsoft.Reporting.WebForms.LocalReport.Render(String format, String deviceInfo, String& mimeType, String& encoding, String& fileNameExtension, String[]& streams, Warning[]& warnings) +28
      Microsoft.Reporting.WebForms.LocalReportControlSource.RenderReport(String format, String deviceInfo, NameValueCollection additionalParams, String& mimeType, String& fileNameExtension) +50
      Microsoft.Reporting.WebForms.ExportOperation.PerformOperation(NameValueCollection urlQuery, HttpResponse response) +153
      Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context) +232
      System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +391
      System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +76
    

    Error de servidor en la aplicación '/PW_Eval360'.

    Se produjo una excepción de tipo 'System.OutOfMemoryException'.

     


    Denis Rivera A
    viernes, 18 de junio de 2010 20:14
  • Saludos amigo, no ha sabido nada del tema.!!!
    Denis Rivera A
    miércoles, 23 de junio de 2010 16:02