У нас есть приложение asp.net 3.5, которое позволяет пользователям создавать множество диаграмм и экспортировать их через pdf. Это отлично подходит для небольших PDF-файлов (менее 100 страниц), но когда мы делаем большие, мы получаем случайные ошибки. некоторые из ошибок, которые мы видели, являются:winnovative pdf - из памяти и других случайных исключений
--System.OutOfMemoryException
не --Could визуализировать строку HTML. Не удалось получить изображение из строки html. Попробуйте установить LoadHtmlConcurrencyLevel = 1 ..
- Ошибка при установке. Недостаточно памяти.
--Timeout ждет завершения преобразования.
--System.OutOfMemoryException: Недостаточно памяти. в System.Drawing.Image.FromStream (поток потока, булева useEmbeddedColorManagement, Boolean validateImageData) в System.Drawing.Image.FromStream (поток Stream)
Если я запускаю большой доклад несколько раз, я обычно получаю различные исключения , Иногда я могу заставить IIS сбой, и мне нужно сделать iisreset, чтобы вернуть приложение.
Вот код, который мы запускаем. Мы создаем документ PDF с диаграммами (png-изображениями), а затем экспортируем его в массив байтов и помещаем его в memystream. Мы передаем поток памяти функции, которая вращает некоторые из изображений и т. Д., А затем вызывает метод 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)