1

我的代码:

var utility = new CrystalDecisions.ReportAppServer.Utilities.Conversion();
var ortpstring = utility.ToString(orpt);

我收到以下错误:

{System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {08497EE6-2ABB-4E1A-A41E-37D2C26E72B6} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
   at CrystalDecisions.ReportAppServer.Utilities.Conversion.ToString(ISCDReportClientDocument m_rptClientDoc)
   at eSiteWeb.frmViewer2.InitializeCrystalReportRAS() in c:\Users\rarch\Development\Amsi-v7.5.2\Product\Production\eSiteWeb\frmviewer2.aspx.cs:line 203}

我正在使用非托管 RAS 2012 Embedded。文档似乎表明这是支持的。

有谁知道我为什么会得到这个,而不是显而易见的。我缺少什么 .dll/功能?

4

1 回答 1

0

在黑暗中拍摄,但是,如果服务器是 64 位的,那么在服务器上的 IIS 管理器中,确保为您的 Web 应用程序设置应用程序池以允许 32 位程序集。尽管它已部署到 64 位系统,但这并不意味着所有引用的程序集都是 64 位 Crystal Reports 程序集,因为它们主要是旧 DLL 集合的包装器,其中一些是 32 位的。

为此,您还需要将 32 位可再发行组件部署到 64 位服务器(因此您需要同时安装 64 位和 32 位)。

于 2013-03-24T10:47:54.997 回答