у нас есть приложение asp.net 3.5, которое позволяет пользователям создавать множество диаграмм и экспортировать их через pdf.Это прекрасно работает для небольших PDF-файлов (менее 100 страниц), но когда мы делаем большие, мы получаем случайные ошибки.Вот некоторые из ошибок, которые мы видели:
- System.OutOfMemoryException
- Не удалось отобразить строку HTML.Не удалось получить изображение из строки html.Попробуйте установить LoadHtmlConcurrencyLevel = 1 ..
- Clone error.Недостаточно памяти.
- время ожидания завершения конвертации.
--System.OutOfMemoryException: недостаточно памяти.в System.Drawing.Image.FromStream (поток Stream, логическое значение useEmbeddedColorManagement, Boolean validateImageData) в System.Drawing.Image.FromStream (поток Stream)
Если я запускаю большой отчет несколько раз, я обычно получаю разные исключения,Иногда я могу заставить IIS аварийно завершить работу, и мне нужно выполнить iisreset для восстановления приложения.
Вот код, который мы запускаем.Мы создаем документ PDF с диаграммами (изображениями в формате png), а затем экспортируем его в массив байтов и помещаем в поток памяти.Мы передаем поток памяти функции, которая поворачивает некоторые изображения и т. Д., А затем вызываем метод doc.save для его экспорта.
Dim mainPageBytes() As Byte = PDF.GetBytes
Dim stream As New System.IO.MemoryStream(mainPageBytes)
Dim existingDoc As New PDFCreator.Document(stream)
Dim doc As PDFCreator.Document = GetDocument(mainPageBytes, GetChartingPageNumbers(PDF.ConversionSummary), pageOrientation, user, existingDoc)
doc.Save(response, True, Me.DocumentName)