我的项目由Visual Studio 2013开发,该工作室使用SP21下的Crystal Report。目前,我迁移到使用Visual Studio 2017并安装了Crystal Report SP24。该应用程序能够执行而没有任何问题。但是,一旦我通过Crystal Report打印报告,w3wp.exe便崩溃了。这是在我的本地主机上发生的。
rptGrn.Load(HttpContext.Current.Server.MapPath("~/Reports/GRNRecords.rpt"));
rptGrn.SetDataSource(SSRecordHdrs); //error
rptGrn.Subreports["GRNDetails"].SetDataSource(lsDtls); //error
我通过在web.config中添加设置来尝试该解决方案,但是对此没有运气,并且它不起作用。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
这个问题我一个星期挠头了。感谢您提供帮助解决此问题的线索或帮助。
非常感谢您。
设置: -WebForm应用程序 -.NET 3.5 -Visual Studio 2017 -IIS 10(本地主机)
答案 0 :(得分:0)
苦了一个星期后,我发现根本原因是后来的Crystal Report SP21无法使用ADO.NET。
请参考SP21的要点(5): https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads
我发现的解决方案是: 通过在SP21下安装Crystal Report创建虚拟机,然后在虚拟机上部署项目。
注意: 如果.NET Framework超过3.5,将不会出现此问题。
如果有人正在通过.NET 3.5框架进行开发,也许可以通过添加解决该问题
<startup useLegacyV2RuntimeActivationPolicy="true">
到网络/应用程序配置。我尝试过这种方法,但是对我来说没有运气。
遇到这个问题的人祝你好运。