Страница 1 из 1

Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Добавлено: 08 ноя 2018, 15:07
qwerty_ram
Здравствуйте

При попытке рендеринга отчета - вызова метода l_kp.Render(false); в какой то момент выскакиевает исключение:
В данный момент объект используется другим процессом.

В приложенном проекте ошибка воспроизводится.
Отчет работал в версии 2014.3, сейчас используем 2018.3.2

StackTrace:

в System.Drawing.Graphics.get_Transform()
в Stimulsoft.Base.Drawing.StiTextRenderer.DrawTextBase(Graphics g, String& text, Font font, RectangleD bounds, Color foreColor, Color backColor, Double lineSpacing, StiTextHorAlignment horAlign, StiVertAlignment vertAlign, Boolean wordWrap, Boolean rightToLeft, Double scale, Double angle, StringTrimming trimming, Boolean lineLimit, SizeD& measureSize, Boolean needDraw, List`1 textLinesArray, List`1 textLinesInfo, Boolean allowHtmlTags, List`1 outRunsList, List`1 outFontsList, StiTextOptions textOptions) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Base\Drawing\StiTextRender.cs:строка 566
в Stimulsoft.Base.Drawing.StiTextRenderer.MeasureText(Graphics g, String text, Font font, RectangleD bounds, Double lineSpacing, Boolean wordWrap, Boolean rightToLeft, Double scale, Double angle, StringTrimming trimming, Boolean lineLimit, Boolean allowHtmlTags, StiTextOptions textOptions) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Base\Drawing\StiTextRender.cs:строка 487
в Stimulsoft.Report.Components.StiWysiwygTextRender.MeasureString(Double width, Font font, StiText textBox) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\StiWysiwygTextRender.cs:строка 143
в Stimulsoft.Report.Components.StiText.GetActualSize() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\SimpleComponents\StiText.cs:строка 1652
в Stimulsoft.Report.Components.StiContainerHelper.CheckSize(StiComponent component) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\ComplexComponents\StiContainerHelper.cs:строка 113
в Stimulsoft.Report.Engine.StiContainerV2Builder.InternalRender(StiComponent masterComp) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiContainerV2Builder.cs:строка 233
в Stimulsoft.Report.Components.StiComponent.InternalRender() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\StiComponent.cs:строка 1332
в Stimulsoft.Report.Engine.StiEngine.InternalRenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents, Boolean& isChildsEnabled) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2103
в Stimulsoft.Report.Engine.StiEngine.RenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1896
в Stimulsoft.Report.Engine.StiEngine.RenderBand(StiBand band) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1856
в Stimulsoft.Report.Engine.StiStaticBandsHelper.RenderPageHeaderBands() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiStaticBandsHelper.cs:строка 233
в Stimulsoft.Report.Engine.StiStaticBandsHelper.RenderHeaderBeforeTitle() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiStaticBandsHelper.cs:строка 194
в Stimulsoft.Report.Engine.StiStaticBandsHelper.Render() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiStaticBandsHelper.cs:строка 93
в Stimulsoft.Report.Engine.StiEngine.NewList(Boolean skipStaticBands) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 425
в Stimulsoft.Report.Engine.StiEngine.NewList() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 409
в Stimulsoft.Report.Engine.StiEngine.NewPage(Boolean ignoreKeepContainers) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 652
в Stimulsoft.Report.Engine.StiEngine.NewDestination(Boolean ignoreKeepContainers) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 735
в Stimulsoft.Report.Engine.StiEngine.NewDestination() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 722
в Stimulsoft.Report.Engine.StiEngine.CheckFreeSpace(Double value) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1741
в Stimulsoft.Report.Engine.StiEngine.CheckFreeSpace(StiContainer container) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1679
в Stimulsoft.Report.Engine.StiEngine.InternalRenderContainer(StiContainer container, Boolean isPrintAtBottom, Boolean isFooterOnAllPages) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2582
в Stimulsoft.Report.Engine.StiEngine.RenderContainer(StiContainer container, Boolean isPrintAtBottom, Boolean isFooterOnAllPages) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2426
в Stimulsoft.Report.Engine.StiEngine.InternalRenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents, Boolean& isChildsEnabled) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 2164
в Stimulsoft.Report.Engine.StiEngine.RenderBand(StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiEngine.cs:строка 1896
в Stimulsoft.Report.Engine.StiDataBandV2Builder.RenderBand(StiDataBand masterDataBand, StiBand band, Boolean ignorePageBreaks, Boolean allowRenderingEvents) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiDataBandV2Builder.cs:строка 1694
в Stimulsoft.Report.Engine.StiDataBandV2Builder.RenderMaster(StiDataBand masterDataBand) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiDataBandV2Builder.cs:строка 1958
в Stimulsoft.Report.Components.StiDataBand.RenderMaster() в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Components\Bands\StiDataBand.cs:строка 1585
в Stimulsoft.Report.Engine.StiPageHelper.RenderPage(StiPage page) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiPageHelper.cs:строка 458
в Stimulsoft.Report.Engine.StiRenderProviderV2.RenderReport(StiReport report, StiReport masterReport, StiRenderState state) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiRenderProviderV2.cs:строка 1192
в Stimulsoft.Report.Engine.StiRenderProviderV2.Render(StiReport report, StiRenderState state) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\StiRenderProviderV2.cs:строка 391
в Stimulsoft.Report.Engine.StiReportV2Builder.RenderSingleReport(StiReport masterReport, StiRenderState renderState) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\Engine\EngineV2\Builders\StiReportV2Builder.cs:строка 129
в Stimulsoft.Report.StiReport.RenderReport(StiRenderState renderState) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 321
в Stimulsoft.Report.StiReport.Render(StiRenderState renderState, StiGuiMode guiMode) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 199
в Stimulsoft.Report.StiReport.Render(StiRenderState renderState) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 89
в Stimulsoft.Report.StiReport.Render(Boolean showProgress, Int32 fromPage, Int32 toPage) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 81
в Stimulsoft.Report.StiReport.Render(Boolean showProgress) в D:\Stimulsoft\Stimulsoft.Reports\Stimulsoft.Report\StiReport.Render.cs:строка 72
в WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e) в c:\Users\boykov\Documents\Visual Studio 2013\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs:строка 28

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Добавлено: 12 ноя 2018, 17:48
Aleksey
Здравствуйте,

Необходимо дополнительное время для анализа проблемы.

Спасибо.

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Добавлено: 13 ноя 2018, 15:16
qwerty_ram
Хорошо, пока мы решили проблему заменой <TextQuality>Wysiwyg</TextQuality> на <TextQuality>Typographic</TextQuality>

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Добавлено: 14 ноя 2018, 17:52
Ivan
Здравствуйте.
qwerty_ram писал(а): При попытке рендеринга отчета - вызова метода l_kp.Render(false); в какой то момент выскакиевает исключение:
Проблема решена.
Патч будет включён в следующий билд.
qwerty_ram писал(а): Отчет работал в версии 2014.3, сейчас используем 2018.3.2
Несколько лет назад была добавлена поддержка мультипоточности при включенном кэшировании отчёта для ускорения построения отчёта.
Как оказалось, не предусмотрели вариант использования свойства ShrinkFontToFit.

Спасибо.

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Добавлено: 15 ноя 2018, 16:10
qwerty_ram
Ivan писал(а): 14 ноя 2018, 17:52 Здравствуйте.
qwerty_ram писал(а): При попытке рендеринга отчета - вызова метода l_kp.Render(false); в какой то момент выскакиевает исключение:
Проблема решена.
Патч будет включён в следующий билд.
qwerty_ram писал(а): Отчет работал в версии 2014.3, сейчас используем 2018.3.2
Несколько лет назад была добавлена поддержка мультипоточности при включенном кэшировании отчёта для ускорения построения отчёта.
Как оказалось, не предусмотрели вариант использования свойства ShrinkFontToFit.

Спасибо.
Большое спасибо!

Я так понимаю это войдет в билд 2018.3.5?
Можно ли как то из отчета выключить многопоточность обработки?

Re: Ошибка "В данный момент объект используется другим процессом." при рендеринге отчета

Добавлено: 16 ноя 2018, 14:25
Aleksey
Здравствуйте,

Да, следующая опция:
StiOptions.Engine.ReportCache.ThreadMode == StiReportCacheThreadMode.Off;

Спасибо.