Почему Crystal Reports для VS 2008 выдает ошибку загрузки отчета. COMException: Ошибка сервера приложений отчетов при отправке отчета на принтер?

У меня есть служба .NET Windows, в которой есть программа просмотра отчетов Crystal. когда он опрашивает базу данных и находит заказы в реальном времени, он отправляет отчет на принтер в сети. это сервер Windows2003 64bit. Я установил msi на 64-битный сервер, найденный в моей установке Visual Studio:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5\CRRedist2008_x64.msi.

Я получаю эту ошибку слишком часто, иногда 3-4 раза в день. Я должен признать, что это был проект, изначально написанный на VB6 и cr8.5. Я, наконец, обновился до vs2003 и, в конечном итоге, до 64-битной версии .net 2.0, и она повсюду терпит неудачу. С каждым апгрейдом все хуже.

  1. Должен ли я создать новую службу Windows, а не использовать проект, который прошел мастер обновления до vs2008??

  2. Как вы думаете, есть ли конфликт с msi из 32-битной версии crystal, работающей на том же сервере для моих веб-приложений 1.1? да, iis6 временно работает в 32-битном режиме... это старый отчет, но я обновил его до 10.5. помощь!

Вот дамп стека:

Исключение по умолчанию: CrystalDecisions.Shared.CrystalReportsException: Ошибка загрузки отчета. ---> System.Runtime.InteropServices.COMException (0x80004005): Ошибка сервера приложений отчетов в CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) в CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) в CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() --- Конец внутренней трассировки стека исключений --- в CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() в CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod , Int16 parentJob) в CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(строковое имя файла) в PickTicketServer.PickTicketServer.PrintPickTicket(Int64 INlngOrderID, логическое значение INblnPickOrPack, Int64 INlngCompanyID)


person Community    schedule 25.09.2009    source источник


Ответы (2)


Имеет ли пользователь, под которым вы работаете, права доступа к принтеру? Это может вызвать эту ошибку.

person Ed S.    schedule 25.09.2009
comment
нет, он работает под правильной учетной записью. Он выплюнет 100 заказов, а потом полностью поджарится на мне. это либо тупик БД, либо таймер в службе win перекрывается; т. е. timer1.enable=false не отключает его, и я получаю несколько операций чтения и отправки, хотя сомнительно, или, наконец, я думаю о 32-битных и 64-битных установках crystal msi. Я был в 64-битном аду уже год. получение фреймворка 1.1, работающего на 64-битной win2k3, болезненно. - person ; 25.09.2009

Вы не очищаете свои объекты в памяти, это приводит к сбою, попробуйте удалить объект после того, как вы его использовали.

person katty ross    schedule 28.04.2010