2010-04-01 2 views
1

바이트 배열 컬렉션에 저장된 여러 pdf 파일의 이진 파일이 있습니다.Abcpdf throwing System.ExecutionEngineException

내 목표는 다음 abcpdf을 사용하여 단일 .pdf 파일로를 연결하여 ASP.Net 웹 사이트의 페이지에 응답 객체가 새로 생성 된 파일을 스트리밍하는 것입니다.

은 다음과 같이 그 일을하고 있었다 :

이 LOOP 을 BEGIN ...

'Create a new Doc 
Dim doc As Doc = New Doc 

'Read the binary of the current PDF 
doc.Read(bytes) 

'Append to the master merged PDF doc 
_mergedPDFDoc.Append(Doc) 

최종 LOOP 시간의 좋은 95 %를 일하는

. 그러나 지금은 새로운 Doc 객체를 만들면 System.ExecutionEngineException이 발생하고 CLR이 손상됩니다. 그것은 많은 수의 pdfs와 관련이없는 것 같고 (때로는 2 개만 생길 수도 있음) 또는 큰 크기의 pdfs와 관련이있는 것 같습니다. 그것은 거의 완전히 무작위로 보였다.

이 (안 아주 잘) 설명 abcpdf에서 알려진 버그 여기 Item 6.24이다. 나는 abcpdf Doc 객체에 Using 블록을 사용하도록 제안한 a helpful SO post을 보았습니다.

지금은이 일을 해요 그래서

:

Using doc As New Doc 
     'Read the binary of the current PDF 
     doc.Read(bytes) 
     'Append to the master merged PDF doc 
     _mergedPDFDoc.Append(doc) 
    End Using 

내가 문제를 보지 못했다는 다시 한번 발생하고 갈 수있는 내가 할 수있는 한 최선의 테스트 버전에서 들리고있다.

이 오류와 비슷한 경험을 가진 사람이 있습니까? 이 문제가 해결 되었습니까? CLR에 내부 오류가있을 때

+0

FWIW 나는이 버그를 해결하는 방법 또는 using'이 중지 계속'알고하지 않습니다하지만 난 거의 같은 일에 대한 iTextSharp의 PDF 라이브러리를 사용하고 문제가없는 (그리고 내가 추가 해요 함께 100s) – CResults

답변

3

ExecutionEngineExceptions가 발생하는, 그래서 이것은 마이크로 소프트가 해결하는 하나입니다. 사용하거나 시도-catch 블록에서

포장 코드 때문에 작동하지 않을 수 있습니다.

.NET 3.5 SP1, 어떻게 보안 속성에 관한 webSupergoo의 웹 사이트에 언급 된 문제는 어셈블리에 적용되었다. 이 결함은 웹 페이지를 디버깅하는 동안 발생하며 문제가 ASP.NET 동적 컴파일에 연결되어 있다고 의심됩니다.

ABCpdf 버전 7.010 이상에서는 문제가 해결되었습니다. 어리석은 질문에 사과하지만 최신 버전을 사용해 보셨습니까? Windows 시작 메뉴> 프로그램을 통해 위치 ABCpdf의 버전은 현재 PDFSettings 유틸리티를 사용하여 설치

당신은 확인할 수 있습니다> ABCpdf 7.0 .NET

ABCpdf를 업데이트하는 다음 제거 고려해야 할 옵션이 아닌 경우 .NET 3.5 SP1.

+0

응답 해 주셔서 감사합니다. 나는 webSupergoo 웹 사이트에서 해당 항목을 보았습니다. 불행히도, 나는 업그레이드에 대한 통제권이 없다. 이상하게도, 문제가 재발하는 것을 아직 보지 못했지만 사용 블록이 도움이된다는 이유가 없다는 점에 동의합니다. 나는 운이 좋았던 것 같아요? –

관련 문제