加载报告失败-版本匹配

2020-09-12 00:12发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我已经努力了好几天,试图解决这个...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我已经努力了好几天,试图解决这个常见错误,但是我见过的解决方案都没有帮助。

我有一个现有的Windows服务,该服务可将一些XML数据导入并解析到数据库中。 该服务已更新为使用CR创建PDF,然后通过电子邮件发送给用户(已提交的XML数据中的电子邮件)。 当在本地运行以进行测试时,更新的服务功能十分完善。 但是,在将其安装到生产服务器上后,它无法正常工作-我收到了看似常见的"加载报告失败"错误。

我在VS中比较了现有服务和新更新的服务,它们是相同的(据我所知要检查)。 两者都包括对CrystalDecisions.CrystalReports.Engine和CrystalDecisions.Shared的引用,而旧的和更新的服务引用均为运行时版本v2.0.50727,版本13.0.3500.0。 我的app.config中有一些自动生成的代码:

 <运行时>
     
       
         
         
       
     
    

我们已经检查了所有权限,文件路径等。如上所述,此WORKS在本地运行。 我们已经隔离了引发异常的确切行

 rptDoc.Load(Constants.ReportInfo.RECEIPT_SUBMISSIONS_REPORT_PATH); 

我尝试将变量的内容直接替换为.Load(已删除服务器名称):

 rptDoc.Load(@" \\ <服务器> \ e $ \ Spectrum \ Reports \ ReceiptsSubmission.rpt"); 

我尝试直接在服务器上引用它:

 rptDoc.Load(@" E:\ Spectrum \ Reports \ ReceiptsSubmission.rpt"); 

最后,我尝试将.RPT移到完全不同的位置:

 rptDoc.Load(@" C:\ CrystalReports \ PDFs \ ReceiptsSubmission.rpt"); 

报告位置绝对正确,并且在本地运行时,上面的每种方法都可以正常工作。

我已经在本地计算机和服务器上查看了适用于.NET Framework的SAP Crystal Reports运行时引擎的安装版本。 在本地,我具有版本13.0.23.2819(64位)。 我的服务器具有版本13.0.1.220(32位和64位)。 这是我的问题吗? 如果是,我应该如何纠正? 我担心会更新服务器上的引擎,以免破坏当前正在运行的其他服务。

付费偷看设置
发送
3条回答
我是小鹏鹏啊
1楼 · 2020-09-12 01:08.采纳回答

首先,13.0.1.220是3年前发布的第一个SP,并且不再受支持,也不再受当前Windows Server的支持。

有关详细信息,请参见Platforms PDF文件: http://scn.sap.com/docs/ DOC-21990

在PC和服务器上均卸载SP 1并安装SP 23,则13.0.3500.0将是正确的版本。 这也意味着最低的Framework版本现在为3.5。 您不能在同一应用中混合使用SP 1和SP 23,需要对其进行重新编译才能使用SP 23,SP 23中的许多更改和更新。

删除文件夹中的所有文件,并在构建项目时关闭复制dll的本地...我不记得它的确切选项以及它的位置...

请勿将它们复制到APP服务器上,它们仅应与MSI和GAC一起安装,否则,您可能会得到不支持的混合版本。

不清楚是Windows还是WEB应用程序,但请确保将您的web.config或app.cong文件也复制过来。 然后搜索并确保它是唯一要加载的文件。

Don

Tong__Ming
2楼-- · 2020-09-12 01:09

这绝对是您的问题! 您需要从此处下载最新版本的运行时: https://www.crystalreports。 com/crystal-reports-visual-studio /您必须输入姓名和电子邮件地址才能进入该站点。 然后,您将使用屏幕底部的蓝色按钮之一来获取所需的运行时。

请注意,您所需的SDK的"位元"(32位或64位)是基于您如何编译应用程序的,而不是服务器的位元! 另外,我怀疑您可能只是从SDK复制了库.dll文件,作为应用程序安装的一部分。 这不适用于Crystal-SDK基于需要在系统中注册的某些COM组件,并且您在应用程序中引用的.dll文件引用了SDK中的其他.dll文件。 因此,为了使一切正常运行,您必须安装其中一种SDK下载文件,而不是仅复制引用/使用的.dll文件。

-Dell

Haoba3210
3楼-- · 2020-09-12 00:53

我知道大约7天前安装了当前的Crystal版本。 要将Crystal添加到我的项目中,我使用了Project >> Add Reference,并从Extensions菜单中选择了CrystalDecisions.CrystalReports.Engine和CrystalDecisions.Shared。 我从本地版本13.0.23.2819降级到13.0.1.220(以匹配我的服务器),仍然没有骰子。

我进行了重建,然后使用installutil.exe命令安装了该服务-我应该做些什么? 我认识到,构建服务后,bin文件夹中现在有一堆CR .DLL,但是我不确定是否需要做一些特殊的事情或除了安装此服务外,因为该服务已使用CR功能进行了更新。 我已经花了整整一个上午的时间来尝试寻找答案,但是我所看到的所有内容都仅参考安装基本服务,而没有其他.DLL。

一周热门 更多>