ReportDocument构造函数抛出的TypeInitializerException

时间:2014-06-20 05:01:18

标签: asp.net .net crystal-reports 32bit-64bit

我有一个ASP .NET Web应用程序,它引用了32位Crystal Reports运行时的程序集。 (从CRRedist2008_x86.msi安装) 部署它的服务器具有64位Crystal Reports运行时。 包含CrystalReportViewer的表单引发以下异常:

  

System.TypeInitializationException:类型初始值设定项   ' CrystalDecisions.CrystalReports.Engine.ReportDocument'扔了一个   例外。 ---> System.UnauthorizedAccessException:检索COM   具有CLSID的组件的类工厂   {5FF57840-5172-4482-9CA3-541C7878AE0F}因以下原因失败   错误:80070005。在   CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()---结束   内部异常堆栈跟踪--- at   CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()at   [qualifiedFormName] _Load(Object sender,EventArgs e)

虽然我意识到将开发环境与运行时环境相同是理想的解决方案,但我希望有一些方法可以解决这个问题,而无需升级开发环境。

更新服务器上web.config中对Crystal Reports程序集的引用是否有效?

1 个答案:

答案 0 :(得分:0)

  • 打开Windows注册表(Regedit.exe)
  • 搜索5FF57840-5172-4482-9CA3-541C7878AE0F
  • 您应该找到一个密钥,将其展开并转到每个子节点,直到找到安装路径。
  • 转到该路径(通常是C:\ Program ... \ Business Objects ... \ bin ...)
  • 授予ASP .NET,IIS工作进程,匿名Web用户进程帐户

    的完全权限

    你应该好好去。