метров 300-400 и занимает. он не перезапускается, т.к. локальная машина - имею в виду под отладчиков.
report.Render(false); - проходит нормально. в этот момент и растет память
viewer.Report = report; - а вот на той строчке происходит обвал аут оф мемори
Непредсказуемый веб-вьювер
Непредсказуемый веб-вьювер
Здравствуйте,
В момент когда происходит присвоение отчета в StiWebViewer, генератор отчетов производит экспорт отчета в html (или одну страницу или все страницы, в зависимости от параметров вьювера), сохраняет частично информацию об отчете в кэш, и если используется режим с кэшированием, то производится сохранение отчета в кэш страницы или сессии (в зависимости от параметров). В Вашем случае возможная суть проблемы в том, что отчет занимает в памяти слишком много места для asp.net процесса. Отчет на 200 страниц для asp.net (стандартные настройки сервера) достаточно большой отчет. Сделать с этим мы с кожалению ничего не можем, .Net любит память. Что можно предпринять?
1. Отчет строить частями или ранжировать. К примеру, данные с 1-100, 101 - 200 и т.д.
2. Попробывать использовать режим RenderOnlyCurrentPage для свойства RenderMode. В этом режиме отчет строится только до текущей страницы, что позволяет оптимизировать отчет.
3. Не использовать StiWebViewer. Этот компонент использует различные методики для отображения содержимого отчета, которые в любом случае потребляют ресурсы сервер. Отчет можно экспортировать в формат Adobe Pdf (или другой формат) и затем открыть его пользователю.
Спасибо.
В момент когда происходит присвоение отчета в StiWebViewer, генератор отчетов производит экспорт отчета в html (или одну страницу или все страницы, в зависимости от параметров вьювера), сохраняет частично информацию об отчете в кэш, и если используется режим с кэшированием, то производится сохранение отчета в кэш страницы или сессии (в зависимости от параметров). В Вашем случае возможная суть проблемы в том, что отчет занимает в памяти слишком много места для asp.net процесса. Отчет на 200 страниц для asp.net (стандартные настройки сервера) достаточно большой отчет. Сделать с этим мы с кожалению ничего не можем, .Net любит память. Что можно предпринять?
1. Отчет строить частями или ранжировать. К примеру, данные с 1-100, 101 - 200 и т.д.
2. Попробывать использовать режим RenderOnlyCurrentPage для свойства RenderMode. В этом режиме отчет строится только до текущей страницы, что позволяет оптимизировать отчет.
3. Не использовать StiWebViewer. Этот компонент использует различные методики для отображения содержимого отчета, которые в любом случае потребляют ресурсы сервер. Отчет можно экспортировать в формат Adobe Pdf (или другой формат) и затем открыть его пользователю.
Спасибо.