RDLC renderizado y exportar a excel muy lento

Adriana 0 Puntos de reputación
2025-02-04T14:28:07.89+00:00

Buenas tardes,

He migrado proyectos que tenía en visual studio community 2017 a community 2022. He mantenido el framework con el que se desarrollaron. Desde hace un tiempo pasó que de repente, aunque la query que carga el report se ejecuta en milisegundos, el renderizado y la exportación a excel demoraba muchísimo. Buscando soluciones en su día vi que añadiendo el legacyCasModel a true en el web.config, solucionaba ese problema y así fue, los reports volvían a cargar rápido. Ahora, con la migración a windows server 2022, las directivas de seguridad no permiten ponerlo a true, da un error de la directiva de seguridad.

He leído un montón de foros con diferentes ideas, pero ninguna funciona porque al publicar en producción, da error. He probado a meter las assemblies como trustAssembly y no da error, pero sigue tardando. También he probado a crear una clase que renderice el report forzando "setup.SetCompatibilitySwitches({"NetFx40_LegacySecurityPolicy"})" y en desarrollo va rápido pero al publicar, da error de que se han infringido las reglas de seguridad de herencia.

Por favor, alguien puede decirme cómo hacer que el renderizado y la exportación a excel de los reports ( Microsoft.ReportViewer.WebForms, Version=15.0.0.0) sea rápido como lo era antes? Pasa con reports que devuelven bastantes registros pero la consulta devuelve los resultados en milisegundos, por lo que el sql no es el problema. Si no se puede hacer nada, hay alguna alternativa? Muchas gracias de antemano.

Saludos!

ASP.NET
ASP.NET
Conjunto de tecnologías de .NET Framework para la creación de aplicaciones y servicios web XML.
53 preguntas
VB
VB
Un lenguaje de programación orientado a objetos desarrollado por Microsoft que se implementa en .NET Framework. Anteriormente se conocía como .NET de Visual Basic.
30 preguntas
0 comentarios No hay comentarios
{count} votos

2 respuestas

Ordenar por: Lo más útil
  1. Jonathan Pereira Castillo 15,870 Puntos de reputación Personal externo de Microsoft
    2025-02-04T19:33:40.7033333+00:00

    ¡Hola Adriana!

    Bienvenido a Microsoft Q&A.

    Entiendo que estás enfrentando problemas con el rendimiento de los informes RDLC al renderizar y exportar a Excel después de migrar tus proyectos a Visual Studio Community 2022 y Windows Server 2022. Aquí te dejo algunas sugerencias detalladas y alternativas que podrían ayudarte a mejorar el rendimiento:

    1. Optimización del Código y Configuración
    • Revisar el Código de Exportación: Asegúrate de que el código utilizado para renderizar y exportar los informes esté optimizado. Aquí tienes un ejemplo básico de cómo debería ser el código:
    Dim warnings As Warning()
    Dim streamIds As String()
    Dim mimeType As String = String.Empty
    Dim encoding As String = String.Empty
    Dim extension As String = String.Empty
    Dim LR As New LocalReport()
    LR.ReportEmbeddedResource = "Reportes.rptEfectividad1.rdlc"
    LR.DataSources.Add(New ReportDataSource("ds", dat))
    Dim bytes As Byte() = LR.Render("Excel", Nothing, mimeType, encoding, extension, streamIds, warnings)
    Dim newFile As FileStream = New FileStream(arch, FileMode.Create)
    newFile.Write(bytes, 0, bytes.Length)
    newFile.Close()
    

    Asegúrate de que no haya operaciones innecesarias que puedan ralentizar el proceso1.

    1. Configuración del Servidor
    • Ajustes de Seguridad: Dado que las directivas de seguridad en Windows Server 2022 no permiten el uso de legacyCasModel, considera revisar y ajustar las configuraciones de seguridad para permitir un rendimiento óptimo sin comprometer la seguridad.
    • Uso de Múltiples Núcleos: Verifica si el servidor está utilizando todos los núcleos disponibles. A veces, los informes pueden estar limitados a un solo núcleo, lo que ralentiza el proceso.
    1. Alternativas y Herramientas Adicionales
    • Power BI Report Builder: Si los problemas persisten, podrías considerar migrar tus informes a Power BI Report Builder, que ofrece una mejor integración y rendimiento para la exportación a Excel.
    • SSRS (SQL Server Reporting Services): Otra alternativa es utilizar SSRS, que está diseñado para manejar grandes volúmenes de datos y puede ofrecer un mejor rendimiento en la exportación de informes.
    1. Pruebas y Depuración
    • Entorno de Desarrollo vs. Producción: Asegúrate de que las pruebas en el entorno de desarrollo sean lo más similares posible al entorno de producción. Las diferencias en la configuración del servidor pueden causar problemas de rendimiento.
    • Monitoreo y Logs: Implementa un sistema de monitoreo y logs para identificar cuellos de botella específicos en el proceso de renderizado y exportación.

    Espero que estos consejos ayuden a resolver el problema. Si necesitas más asistencia, estoy a tu disposición.

    Saludos,

    Jonathan.

    ----------*

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ''. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.


  2. Jonathan Pereira Castillo 15,870 Puntos de reputación Personal externo de Microsoft
    2025-02-06T17:47:54.46+00:00

    Oi Adriana,

    O objetivo desta mensagem é verificar as informações fornecidas. Se tiver mais atualizações sobre este assunto, por favor, não hesite em responder neste mesmo tópico.

    Cuidadosamente                 

    Jonathan

    -----------

    Sua opinião é muito importante para nós! Se esta resposta resolveu sua consulta, por favor clique em ‘YES‘. Isso nos ajuda a melhorar continuamente a qualidade e relevância de nossas soluções. Obrigado pela sua colaboração!


Su respuesta

Las respuestas pueden ser marcadas como Respuestas aceptadas por el autor de la pregunta, lo que indica a los usuarios que la respuesta resolvió su problema.