Память рабочего процесса IIS продолжает увеличиваться с каждым новым отчетом Devexpress.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Память рабочего процесса IIS продолжает увеличиваться с каждым новым отчетом Devexpress.

Сообщение Гость »

При этом используется Dotnet Framework 3.5. Отчеты содержат много изображений с высоким разрешением.
Мне нужно знать, как правильно их утилизировать.

Код: Выделить всё

 // ReportViewer.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{

XtraReport report = new XtraReport();
report.LoadLayout(reportsDirectory + "\\" + Request.Params["rptnme"]);
//For backward compatibility
SqlDataSource.DisableCustomQueryValidation = true;
SqlDataSource.AllowCustomSqlQueries = true;

//Allow all scripts to be run via devexpress for backward compatibility
ScriptPermissionManager.GlobalInstance = new ScriptPermissionManager(ExecutionMode.Unrestricted);

if (report.DataSource is SqlDataSource)
{
ParseParams(report);
}

if (report.DataSource != null)
{
report.DataSourceDemanded += report_DataSourceDemanded;
((SqlDataSource)report.DataSource).ConfigureDataConnection += new ConfigureDataConnectionEventHandler(devReports_Default_ConfigureDataConnection);
}

SubReports(report);

if (Request.Params.Count > 0)
{
if (Request.Params["DisplayName"] != null)
{
report.DisplayName = Request.Params["DisplayName"];
}
}

if (Request.Params["exptyp"] == "pdf" || Request.Params["exptyp"] == "ALL")
{
// Specify export options.
PdfExportOptions pdfExportOptions = new PdfExportOptions()
{
PdfACompatibility = PdfACompatibility.PdfA1b
};

}

DocViewer1.OpenReport(report);

}
// ReportViewer.aspx














Этот код является частью страницы веб-форм ASP.NET, которая используется для загрузки и отображения отчета с помощью инструментов отчетов DevExpress. Вот описание того, что делает метод Page_Load:
  • Сначала он создает новый объект XtraReport, который представляет отчет.
    < li>Затем он загружает макет отчета из файла. Путь к файлу создается путем объединения reportDirectory (который считывается из конфигурации приложения) и имени отчета, которое передается в качестве параметра в запросе.
  • Это отключает проверку пользовательского запроса и позволяет настраивать запросы SQL для SqlDataSource. Это сделано для обратной совместимости.
  • Он устанавливает для ScriptPermissionManager.GlobalInstance новый ScriptPermissionManager с ExecutionMode.Unrestricted, что позволяет запускать все сценарии через DevExpress для обеспечения обратной совместимости.
  • Если источником данных отчета является SqlDataSource, он вызывает метод ParseParams для анализа параметров запросов отчета.
  • Если у отчета есть источник данных, он подписывается на событие DataSourceDemanded и событие ConfigureDataConnection SqlDataSource. Событие DataSourceDemanded возникает, когда запрашивается источник данных отчета, а событие ConfigureDataConnection возникает, когда необходимо настроить подключение к данным SqlDataSource.
  • Оно вызывает метод SubReports для обработки любых вложенные отчеты в отчете.
  • Если в запросе есть параметры, отображаемому имени отчета присваивается значение параметра «DisplayName».
  • Если параметр «exptyp» в запросе имеет значение «pdf» или «ALL», он создает новый объект PdfExportOptions и устанавливает для его свойства PdfACompatibility значение PdfACompatibility.PdfA1b. Используется для указания параметров экспорта отчета в PDF. Однако сам экспорт в PDF закомментирован в этом коде.
  • Наконец, он открывает отчет в DocViewer1, который представляет собой элемент управления ASPxWebDocumentViewer, отображающий отчет пользователю.
    Этот метод вызывается каждый раз при загрузке страницы. Он считывает имя отчета из параметров запроса, загружает отчет, настраивает его и отображает пользователю.


Подробнее здесь: https://stackoverflow.com/questions/781 ... port-beein
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»