우리는 사용자가 많은 차트를 생성하고 pdf를 통해 내보낼 수있는 asp.net 3.5 응용 프로그램을 보유하고 있습니다. 이것은 작은 pdf (100 페이지 미만)에서는 잘 작동하지만, 큰 페이지를 수행 할 때 임의의 오류가 발생합니다. 우리가 본 오류 중 일부는 다음과 같습니다.winnovative pdf - 메모리 부족 및 기타 무작위 예외
- System.OutOfMemoryException
- HTML 문자열을 렌더링 할 수 없습니다. HTML 문자열에서 이미지를 가져올 수 없습니다. LoadHtmlConcurrencyLevel = 1로 설정하십시오.
- 복제 오류. 메모리가 부족합니다 ..
- 변환 대기 시간이 만료됩니다.
- System.OutOfMemoryException : 메모리가 부족합니다. 나는 큰 보고서를 여러 번 실행하면 System.Drawing.Image.FromStream에서 System.Drawing.Image.FromStream (스트림 스트림, 부울 useEmbeddedColorManagement, 부울 validateImageData) (스트림 스트림)에서
, 나는 보통 다른 예외를 얻을 . 때로는 IIS가 중단 될 수 있으며 iisreset을 수행하여 응용 프로그램을 다시 백업해야합니다.
다음은 실행 코드입니다. 차트 (png 이미지)로 PDF 문서를 만든 다음 바이트 배열로 내보내 메모리 릭스 스트림에 저장합니다. 메모리 스트림을 이미지 등의 일부를 회전시키는 함수에 전달한 다음 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)