尝试加载Crystal Reports运行时时出现错误

我已经在内部网站上工作了很长一段时间,为客户维护它。 除了一些错误,该网站正在按预期工作。

但是,突然之间,出现了有问题的错误。 这从未发生过。

以下是我们使用的软件:

  • Windows Server 2008 R2,64位
  • Visual Studio 2005作为首选IDE
  • ASP.net / C#为该网站
  • .NET 2.0
  • IIS,用于网站托管。
  • CrystalReport10,它会出现(从图片中)。

现在,我已经对此做了一些研究,很多人建议重新构建/发布网站为x86而不是任何CPU ,很多人还建议重新安装64位CR等等。

但同样,这种情况从未发生过,实际上很少有人篡改服务器。 我认为没有理由为什么这个网站在我的时间之前很久就会使用“ 混合平台 ”构建,它会突然停止在它部署的操作系统上运行,也就在我的时间之前。 由于没有其他人使用该服务器,它怎么会突然产生这样的错误? 它不像有人可以去那里卸载东西 – Windows Update,也许?

这是我在C:\ Windows \ Assembly中在操作系统上找到的截图:

Windows Server 2008

奇怪的是,我在我的本地测试开发PC上发现了同样的东西,为我正在研究的另一个程序增加了一些版本13部分。 该网站在我的本地测试开发工作正常。 在实时服务器上,它没有。 在我假设我可能有一些必要的服务器没有之前,我也让自己记住,现场服务器上的任何东西已经存在了一段时间 – 而且错误现在才开始发生。

这是完整的错误:

‘/’应用程序中的服务器错误。

尝试加载Crystal Reports运行时时发生错误。

Crystal Reports注册表项权限不足或Crystal Reports运行时未正确安装。

请安装包含所需的正确版本的Crystal Reports运行时(x86,x64或Itanium)的相应Crystal Reports可再发行组件(CRRedist * .msi)。 有关更多信息,请访问http://www.businessobjects.com/support 。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

exception详细信息:CrystalDecisions.CrystalReports.Engine.LoadSaveReportException:尝试加载Crystal Reports运行时时发生错误。

Crystal Reports注册表项权限不足或Crystal Reports运行时未正确安装。

请安装包含所需的正确版本的Crystal Reports运行时(x86,x64或Itanium)的相应Crystal Reports可再发行组件(CRRedist * .msi)。 有关更多信息,请访问http://www.businessobjects.com/support 。

来源错误:

在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。

堆栈跟踪:

[LoadSaveReportException:尝试加载Crystal Reports运行时时发生错误。

Crystal Reports注册表项权限不足或Crystal Reports运行时未正确安装。

请安装包含所需的正确版本的Crystal Reports运行时(x86,x64或Itanium)的相应Crystal Reports可再发行组件(CRRedist * .msi)。 有关更多信息,请访问http://www.businessobjects.com/support 。]
CrystalDecisions.CrystalReports.Engine.ReportDocument.CheckForCrystalReportsRuntime()+379 CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()+248

[TypeInitializationException:’CrystalDecisions.CrystalReports.Engine.ReportDocument’的类型初始值设定项引发exception。
CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()+ 0
pages_reports_ApplicationHistoryRpt.GenerateReport()+ 163
System.Web.UI.WebControls.Button.OnClick(EventArgs e)+115
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+140
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+29
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+2981

————————————————– ——————————版本信息:Microsoft .NET Framework版本:2.0.50727.5448; ASP.NET版本:2.0.50727.5420

我希望有人可以帮助我。

谢谢。

您是否尝试进入IIS并在运行该网站的应用程序池的高级设置中将“启用32位应用程序”设置为“True”?

我必须为我在Web应用程序中引用的Crystal Reports 2008(12.0.2000.0)版本执行此操作,因为Crystal运行时本身只有32位。

如果您在x86模式下部署应用程序将正常工作。 我已经遇到过这个问题。

也应该有.NET框架而不是.NET Client Framework。

我建议:

  • 部署x64模式。
  • 在服务器上安装最新的x64 Runtime( 此处为64bit.msi )。
  • 如果您遇到兼容性问题( 如此处所述 ),请更改web.config。

祝好运!

将C#.Net Web应用程序从Windows 2003迁移到2012时遇到了同样的错误。

检查系统是否安装了Adobe Reader。 安装Adobe Reader后,Web应用程序开始显示报告。