Symptomy
Załóżmy, że do eksportowania raportu do pliku .pdf używasz usług Reporting Services (SSRS) firmy Microsoft SQL Server 2014 lub 2016. Jeśli wysokość strony jest ustawiona na 8,5 cala, może wystąpić nieobsługiwany wyjątek. Ponadto w dzienniku błędów usługi Reporting Service są rejestrowane komunikaty o błędach podobne do poniższych:
reportrendering! ReportServer_0-485!f60! data-godzina:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: , Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: Wystąpił błąd podczas renderowania raportu. ---> Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException: Wystąpił błąd podczas renderowania raportu. ---> System.IndexOutOfRangeException: Indeks znajdował się poza granicami tablicy.
w: Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessTablixContainer(RPLTablix tablix, RectangleF position, Single[] rowStarts, Single[] columnStarts)
w: Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessReportItem(RPLItemMeasurement measurement, RectangleF bounds, Boolean renderBorders, RectangleF styleBounds, Boolean renderStylesOnBounds, Boolean hasTablixCellParent)
w: Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessNonTablixContainerReportItems(RPLContainer container, RectangleF bounds)
w: Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessReportItem(RPLItemMeasurement measurement, RectangleF bounds, Boolean renderBorders, RectangleF styleBounds, Boolean renderStylesOnBounds, Boolean hasTablixCellParent)
w: Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessPage(RPLReport rplReport, Int32 pageNumber, FontCache sharedFontCache, List'1 glyphCache)
w: Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer.Render(Report report, NameValueCollection deviceInfo, Hashtable renderProperties, CreateAndRegisterStream createAndRegisterStream)
w: Microsoft.ReportingServices.Rendering.ImageRenderer.RendererBase.Render(Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
--- koniec --- śledzenia wewnętrznego stosu wyjątków
w: Microsoft.ReportingServices.Rendering.ImageRenderer.RendererBase.Render(Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
w: Microsoft.ReportingServices.ReportProcessing.Execution.RenderReport.InvokeRenderer(IRenderingExtension renderer, Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
w: Microsoft.ReportingServices.ReportProcessing.Execution.RenderReport.Execute(IRenderingExtension newRenderer)
--- koniec --- śledzenia wewnętrznego stosu wyjątków;
Biblioteki! ReportServer_0-485!f60! data-godzina:: I INFO: Wynik zrzutu: Kod zwrotny procesu zrzutu zewnętrznego 0x20000001.
Rozwiązanie
Ten problem został rozwiązany w następujących aktualizacjach zbiorczych dla SQL Server:
Aktualizacja zbiorcza 8 dla SQL Server 2016 RTM
Aktualizacja zbiorcza 5 dla SQL Server 2016 z dodatkiem SP1
Aktualizacja zbiorcza 6 dodatku Service Pack 2 dla SQL Server 2014
Każda nowa aktualizacja zbiorcza dla SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla SQL Server:
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Informacje
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.