KB4024563 - ИСПРАВЛЕНО: необработанное исключение при экспорте отчета SSRS в файл .pdf, если высота страницы установлена на 8,5 дюйма в SQL Server 2014 или 2016

Применяется к
SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use)

Проблема

Предположим, что вы используете Microsoft SQL Server 2014 или 2016 Reporting Services (SSRS) для экспорта отчета в файл .pdf. Если для высоты страницы задано значение 8,5 дюймов, может возникнуть необработанное исключение. Кроме того, в журнале ошибок службы отчетов регистрируются сообщения об ошибках, похожие на следующие:

Примечание

отчетность! ReportServer_0-485!F60! date-time:: e ОШИБКА: Throwing Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: , Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: во время подготовки отчета произошла ошибка. >--- Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException: во время подготовки отчета произошла ошибка. >--- System.IndexOutOfRangeException: индекс находился за пределами массива.
   в Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessTablixContainer(RPLTablix tablix, позиция RectangleF, Single[] rowStarts, Single[] columnStarts)
   в Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessReportItem(RPLItemMeasurement measurement, RectangleF bounds, Boolean renderBorders, RectangleF styleBounds, Boolean renderStylesOnBounds, Boolean hasTablixCellParent)
   в Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessNonTablixContainerReportItems(контейнер RPLContainer, границы RectangleF)
   в Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessReportItem(RPLItemMeasurement measurement, RectangleF bounds, Boolean renderBorders, RectangleF styleBounds, Boolean renderStylesOnBounds, Boolean hasTablixCellParent)
   в Microsoft.ReportingServices.Rendering.ImageRenderer.Renderer.ProcessPage(RPLReport rplReport, Int32 pageNumber, FontCache sharedFontCache, List'1 glyphCache)
   в Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer.Render(отчет об отчете, NameValueCollection deviceInfo, Hashtable renderProperties, CreateAndRegisterStream, createAndRegisterStream)
   в Microsoft.ReportingServices.Rendering.ImageRenderer.RendererBase.Render(отчет об отчете, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
   --- Конец внутренней трассировки стека исключений ---
   в Microsoft.ReportingServices.Rendering.ImageRenderer.RendererBase.Render(отчет об отчете, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
   в Microsoft.ReportingServices.ReportProcessing.Execution.RenderReport.InvokeRenderer(IRenderingExtension renderer, отчет об отчете, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream)
   в Microsoft.ReportingServices.ReportProcessing.Execution.RenderReport.Execute(IRenderingExtension newRenderer)
   --- Конец внутренней трассировки стека исключений ---;
библиотека! ReportServer_0-485!F60! date-time:: i INFO: Результат дампа: Код возврата процесса внешнего дампа 0x20000001.

Решение

Эта проблема устранена в следующих накопительных обновлениях для SQL Server:

Накопительный пакет обновления 8 для SQL Server 2016 RTM

Накопительный пакет обновления 5 для SQL Server 2016 с пакетом обновления 1 (SP1)

Накопительный пакет обновления 6 для SQL Server 2014 с пакетом обновления 2 (SP2)

Сведения о накопительных обновлениях для SQL Server

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:

Последний накопительный пакет обновления для SQL Server 2016

Последний накопительный пакет обновления для SQL Server 2014

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.