2009-10-15 109 views
0

我正在将现有的ASP.NET2.0应用程序升级到.NET3.5(从VS2005升级到2008--是的,我知道我迟到了!)并且遇到了Crystal Reports的问题。Crystal Reports将应用程序升级到VS2008 .NET 3.5后失败

基本上下面这行代码会导致Webdev.WebServer.exe关闭,应用程序崩溃(我返回到VS)。

CrystalDecisions.CrystalReports.Engine.ReportDocument rd = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); 

该行在Try/Catch中,但此时不会引发异常。

我试着创建一个新的项目,只是包含这一行,它也崩溃 - 所以它不是应用程序本身。
然后我尝试使用旧版本的dll(10.5.3700.0而不是11.5.3700.0),它在虚拟应用程序中正常工作。显然,我宁愿不降级真实应用程序,但这样做的确解决了问题(我还需要降级其他CR dll,以便它可能会在应用程序中产生影响)。

我找不到对DLL的更高版本的任何引用,并已从Crystal Reports中下载VS2008的最新运行时包,但这没有什么区别 - 虽然安装程序似乎什么也不做,事件查看器确认安装成功。

有没有其他人经历过这个或知道它的方式 - 除了降级DLL?

[编辑]我已经能够通过关闭数据执行保护来解决问题,但这不是一个可行的解决方案 - 我几乎没有告诉客户这么做!另外,在VS2005/.NET2.0中一切都运行良好!

回答

0

那么我可能在这里找到了答案 - 它看起来像Crystal Reports XI R2(DLL版本11.5.3700.0)与VS2008不兼容。

This Business Objects document或多或少地证实了这一点,虽然v10.5和2008(XI Release 2任意一方的版本)是兼容的,这很奇怪。该文件还说,数据执行保护可能需要关闭,但这(在我看来)是不可行的。

我将删除XI R2并安装2008,看看我该怎么做 - 一旦完成后我会回复。

[编辑]做到了!奇怪的是,v10和v12被支持,但v11不支持。可能我很快就开始对自己感到满意 - 虽然它现在可以在我的本地开发PC上工作,但部署到服务器并不那么简单。我尝试安装正确的运行时,但是当报告查看器打开时,我只是在浏览器中找不到“C:\ Windows \ Temp \ 9as00af.dll”的错误消息。

[最终编辑]看起来我不得不恢复到10.5.3700.0--即VS2008附带的Crystal Reports版本。在服务器上安装运行系统然后对问题进行排序

相关问题