尝试通过 ASP.NET Web 窗体应用程序访问 Crystal Report,并在尝试运行报表时出现以下错误。
System.Runtime.InteropServices.COMException:检索 COM 类 具有 CLSID 的组件工厂 {C0C99FA5-E1D3-494E-BE0C-73C19424F91C} 由于以下原因失败 错误:8007007f 找不到指定的过程。 (例外 来自 HRESULT:0x8007007F)。
我确认:
我找到了根本原因,或者至少是部分原因..
我在同一台服务器上安装了 Shibboleth SP(版本 3,如果重要的话),它添加了一些组件和 IIS 模块,这似乎会导致与 Crystal Reports OEM 组件发生冲突。
我卸载了 Shibboleth SP,不再出现错误。
我重新安装了 Shibboleth SP,我再次收到 Crystal COM 错误。
Crystal 不喜欢 Shibboleth,这显然是一个已知问题: https://shibboleth.net/pipermail/users/2021-January/048923.html
SysInternals Process Monitor 也有助于确认问题,如果这种情况发生在您身上(并且如果您没有使用 Shibboleth,即:某些其他组件正在造成 Crystal choke。)
如果您在 google 上搜索过该错误,您可能会发现这是因为您的服务器上未安装 Office。有一个很好的理由。 Microsoft 不支持以这种方式使用的 Office 应用程序。你必须找到其他方法来完成你想做的事情。