Ошибка памяти в службе IIS WCF при создании отчетов с использованием ActiveReports - PullRequest
1 голос
/ 25 января 2012

У нас есть требование автоматически генерировать отчеты по расписанию через WCFService, размещенный в IIS.Отчет создается с использованием ActiveReports.Ранее мы генерировали отчет через приложение Windows на нашей машине.Проблема, с которой мы сейчас сталкиваемся, связана с исключением из памяти.Когда мы пытаемся запустить отчеты 2 МБ, они работают нормально, но когда мы пытаемся запустить отчеты 4 МБ, они не обрабатываются.Выдает из памяти исключение.Наш сервер имеет 4 ГБ оперативной памяти, 8 ГБ виртуальной памяти и ОС Windows7.Пожалуйста, сообщите нам, как решить эту проблему.

1 Ответ

0 голосов
/ 26 января 2012

Очевидно, что если у вас есть доступная память и отчет равен действительно 2-4 МБ, тогда отчет будет запущен. Я подозреваю, что отчет намного больше, чем 2-4 МБ в памяти, или у машины недостаточно свободной памяти. Хороший способ увидеть, что происходит, - запустить профилировщик памяти, например Ants или dotTrace . Помните, что в дополнение к данным, которые вы собираетесь загрузить для отчета, любые изображения или содержимое на страницах отчета также будут храниться в памяти. И если вы экспортируете его в другой формат, такой как PDF, будут дополнительные издержки, связанные с хранением этого PDF в памяти.

Кроме того, теперь мы также предлагаем ActiveReports Server , который имеет встроенные средства планирования и веб-службы для запроса отчетов в определенном формате (очевидно, реализован через WCF). Он будет работать с масштабируемостью за счет автоматической постановки в очередь, кэширования и балансировки нагрузки при необходимости. Вы также можете загрузить свои отчеты ActiveReports .rpx из Developer Edition и сразу же начать работу. Просто убедитесь, что весь код вашего отчета содержится в .rpx (скрипте).

Scott Willeke
GrapeCity
...