2012-01-12 2 views
0

MS 2008 및 IIS 7에서 실행되는 VS.Net 2010 & CR이 포함 된 웹 응용 프로그램을 개발 중입니다. 함수 중 하나는 데이터베이스 레코드 (~ 20-50)를 업데이트하고 for 루프의 각 레코드에 대한 네트워크 프린터에 크리스탈 보고서를 인쇄하는 것입니다. (비즈니스 요구로 인해 보고서가 하나씩 인쇄되어야 함) 내 컴퓨터에서이 기능이 정상적으로 작동합니다. 보고서가 PDF 프린터로 인쇄되면 서버에서도 작동합니다.오류 "오류있는 응용 프로그램 w3wp.exe ..."루프에서 크리스탈 보고서를 인쇄하는 경우 이벤트 뷰어에 있음

그러나 실제 네트워크 프린터로 인쇄 할 경우 여러 루프가 지나면 이벤트 뷰어에 자막 오류가 프롬프트됩니다. 페이지에서 예외가 반환되지 않고 한 지점에서 중지되고 페이지가 시간 초과 될 때까지로드됩니다.

나는 프린터 이름, 업데이트 기록 ...

다음

코드의 조각이에 할당 보고서 데이터 소스를 설정, 프로그램에 로그인 한 추가 루프가 새로운 크리스탈 보고서를 만드는 즉, 어디서나 중지 할 수 있다는 것을 발견 매우 간단한 보고서를 인쇄 : 위의 코드가 주석하는 경우

rptDoc.PrintOptions.PrinterName = strPrinterName; 

rptDoc.PrintToPrinter(intPrintCopy, false, 0, 0); 

이 오류가 더 이상하고 아무리 많은 기록을 매번를 완료 할 수 없습니다 루프를 발생 나던.

오류 모듈은 ntdll.dll (대부분), crpe32.dll, kernel32.dll, MSVCR80.dll 등이 될 수 있습니다. 다음은 몇 가지 오류 메시지가 캡처 :

  • 이 모듈은 ntdll.dll, 버전 6.0.6001.18538, 타임 스탬프 0x4cb73957, 예외 코드가 0xc0000005 오류있는 응용 프로그램 W3wp.exe를, 버전 7.0.6001.18000, 타임 스탬프 0x47919ed8 오류있는, 오류 오프셋 0x0000000000046efef0, 프로세스 ID 0x % 9, 응용 프로그램 시작 시간 0x % 10.

  • 결함 0x0000000000025efd 오프셋 애플리케이션 W3wp.exe를 버전 7.0.6001.18000, 타임 스탬프 0x47919ed8, 폴트 KERNEL32.DLL 모듈 버전 6.0.6001.18631, 타임 스탬프 0x4da46d09, 예외 코드 0xe0434352, 프로세스 ID 0x9c0, 프로그램 시작 시간 오류있는 0x01ccd042bf90d940.

  • 애플리케이션 W3wp.exe를 버전 7.0.6001.18000, 타임 스탬프 0x47919ed8, 폴트 모듈 crpe32.dll 버전 13.0.2.469, 타임 스탬프 0x4eb91936, 예외 코드가 0xc0000005, 결함 오프셋 0x00000000002948ea, 프로세스 ID 0X % 9 애플리케이션 오류있는 시작 시간은 0x % 10입니다.

저는 서버 및 IIS 관련 문제가 아니지만 컴퓨터에서 정상적으로 작동하므로 프로그래밍 문제가 아닙니다. 누구나 내게 어떤 아이디어를 줄 수 있습니까?

고맙습니다.

답변

0

테스트 및 테스트 후 실제로 코딩 문제가 있음을 발견했습니다. 레코드 정보를 기반으로 보고서 문서 개체 (데이터 소스 집합과 함께)를 시작하고 반환하는 일반 함수가 만들어집니다. 루프에서 사용되므로 너무 많은 보고서 문서 개체가 시작되어 IIS 프로세스에서 손상 될 수 있습니다. 다른 수정 프로그램에서 "최대 보고서 처리 작업 제한"오류가 발생할 수 있습니다. 그러나 프로그램에서이 오류가 발생하지 않았습니다. 이벤트 뷰어의 오류로 인해주의가 산만 해졌습니다.

이제이 문제를 해결하기 위해 루프 전에 보고서 문서를 시작하고 루프에서 데이터 소스를 업데이트 한 다음 루프 이후에 배치합니다.