我有一个.NET Windows服务,上面有一个水晶报表查看器。当它轮询数据库并查找实时订单时,它会向网络上的打印机发送报告。这是Windows2003服务器64位。我在我的Visual Studio安装中找到的64位服务器上安装了msi:
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,并且整个地方都失败了。每次升级都会变得更糟。
我应该创建一个新的Windows服务而不是使用通过升级向导的项目到vs2008吗?
您认为我的1.1网络应用程序在同一服务器上运行的32位版本的水晶与msi存在冲突吗?是的,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(String filename) 在PickTicketServer.PickTicketServer.PrintPickTicket(Int64 INlngOrderID,Boolean INblnPickOrPack,Int64 INlngCompanyID)
答案 0 :(得分:0)
您运行的用户是否具有打印机的访问权限?这可能会导致此错误。
答案 1 :(得分:0)
您没有清除内存中的对象,它会崩溃,尝试在使用后丢弃对象。