Sintomas
Suponha que utiliza o Microsoft SQL Server 2014 ou 2016 Reporting Services (SSRS) para exportar um relatório para um ficheiro .pdf. Se a altura da página estiver definida como 8,5 polegadas, poderá ocorrer uma exceção não processada. Além disso, as mensagens de erro semelhantes às seguintes são registadas no registo de erros do Reporting Service:
reportrendering! ReportServer_0-485!f60! date-time:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: , Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: Ocorreu um erro durante a composição do relatório. ---> Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException: Ocorreu um erro durante a composição do relatório. ---> System.IndexOutOfRangeException: o índice estava fora dos limites da matriz.
em Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessTablixContainer(RPLTablix tablix, posição RectangleF, Single[] rowStarts, Single[] columnStarts)
em Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessReportItem(RPLItemMeasurement measurement, RectangleF bounds, Boolean renderBorders, RectangleF styleBounds, Boolean renderStylesOnBounds, Boolean hasTablixCellParent)
em Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessNonTablixContainerReportItems(contentor RPLContainer, limites rectangleF)
em Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessReportItem(RPLItemMeasurement measurement, RectangleF bounds, Boolean renderBorders, RectangleF styleBounds, Boolean renderStylesOnBounds, Boolean hasTablixCellParent)
em Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessPage(RPLReport rplReport, Int32 pageNumber, FontCache sharedFontCache, List'1 glyphCache)
em Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer.Render(Relatório, NameValueCollection deviceInfo, Hashtable renderProperties, CreateAndRegisterStream createAndRegisterStream)
em Microsoft.ReportingServices.Rendering.ImageRenderer.RendererBase.Render(Relatório, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
--- Fim do rastreio interno da pilha de exceções ---
em Microsoft.ReportingServices.Rendering.ImageRenderer.RendererBase.Render(Relatório, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
em Microsoft.ReportingServices.ReportProcessing.Execution.RenderReport.InvokeRenderer(IRenderingExtension renderer, Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
em Microsoft.ReportingServices.ReportProcessing.Execution.RenderReport.Execute(IRenderingExtension newRenderer)
--- Fim do rastreio interno da pilha de exceções ---;
biblioteca! ReportServer_0-485!f60! date-time:: i INFO: Resultado da captura: código de retorno do processo de captura externo 0x20000001.
Resolução
Este problema foi corrigido nas seguintes atualizações cumulativas para SQL Server:
Atualização Cumulativa 8 para SQL Server RTM de 2016
Atualização Cumulativa 5 para SQL Server 2016 SP1
Atualização Cumulativa 6 para SQL Server Service Pack 2 de 2014
Cada nova atualização cumulativa para SQL Server contém todas as correções e correções de segurança incluídas na atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.