В программе просмотра событий обнаружена ошибка «Ошибка приложения w3wp.exe ...» при циклической печати отчетов Crystal - PullRequest
0 голосов
/ 12 января 2012

Я разрабатываю веб-приложение с использованием VS.Net 2010 и встроенного CR, которое будет работать на MS 2008 и IIS 7. Одна из функций - обновить записи в базе данных (~ 20-50) и распечатать отчет Crystal.сетевой принтер для каждой записи в цикле.(Из-за необходимости бизнеса отчет должен распечатываться один за другим). На моем аппарате функция работает нормально.Он также работает на сервере, если отчет распечатывается на PDF-принтере.

Однако, если он распечатывается на физическом сетевом принтере, в нескольких сообщениях об ошибках появляется подсказка в средстве просмотра событий;на странице не возвращается никаких исключений, и оно просто останавливается в какой-то момент и страница загружается до истечения времени ожидания.

Я добавил запись в программу и обнаружил, что цикл может остановиться где угодно, т. е. создать новый отчет Crystal, настроить отчетисточник данных, присваивающий имя принтера, обновленная запись ...

Ниже приведен фрагмент кода при печати отчета, очень простой:

rptDoc.PrintOptions.PrinterName = strPrinterName;

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

Если вышеприведенные коды прокомментированы, ошибка не возникаетбольше, и цикл for может завершаться каждый раз, независимо от того, сколько записей.

Неисправными модулями могут быть ntdll.dll (большинство), crpe32.dll, kernel32.dll, MSVCR80.dll и т. д .;Ниже приведены некоторые сообщения об ошибках:

  • Приложение, вызывающее сбой w3wp.exe, версия 7.0.6001.18000, отметка времени 0x47919ed8, сбойный модуль ntdll.dll, версия 6.0.6001.18538, отметка времени 0x4cb73957, исключениекод 0xc0000005, смещение ошибки 0x0000000000046ef0, идентификатор процесса 0x% 9, время запуска приложения 0x% 10.

  • Неисправное приложение w3wp.exe, версия 7.0.6001.18000, отметка времени 0x47919ed8, неисправный модуль kernel32.dll, версия 6.0.6001.18631, отметка времени 0x4da46d09, код исключения 0xe0434352, смещение ошибки 0x0000000000025efd, идентификатор процесса 0x9c0, время запуска приложения 0x01ccd042bf90d940.

  • Приложение с ошибкой w3wp.exe, версия 7.0.6001.18000, отметка времени 0x47919ed8, неисправный модуль crpe32.dll, версия 13.0.2.469, отметка времени 0x4eb91936, код исключения 0xc0000005, смещение ошибки 0x00000000002948ea, идентификатор процесса 0x% 9, время запуска приложения 0x% 10.

Я не знаком с сервером и IIS, но, похоже, не прогрпроблема amming, так как она отлично работает на компьютере.Кто-нибудь может дать мне некоторую идею?

Большое спасибо!

1 Ответ

0 голосов
/ 02 февраля 2012

После тестов и тестов я обнаружил, что на самом деле это проблема кодирования.Общая функция предназначена для инициации и возврата объекта документа отчета (с установленным источником данных) на основе информации о записи.Он используется в цикле, поэтому, вероятно, слишком много объектов документа отчета инициируется и приводит к сбою процесса IIS.Это может произойти в другом кристалле сообщает об ошибке «Максимальный лимит заданий на обработку отчетов».Однако программа просто не выдавала эту ошибку.Ошибки в средстве просмотра событий также отвлекали меня.

Теперь, чтобы решить эту проблему, я инициирую документ отчета перед циклом, обновляю его источник данных в цикле и располагаю его после цикла.

...