Search code examples
c#asp.netwebformscrystal-reportsshibboleth-sp

Why do I get this Crystal Reports error when running on new server after upgrade to OEM 2020 CR Runtime 64-bit version?


Trying to access Crystal Report through ASP.NET Web Forms application and get the following error when trying to run the report.

System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {C0C99FA5-E1D3-494E-BE0C-73C19424F91C} failed due to the following error: 8007007f The specified procedure could not be found. (Exception from HRESULT: 0x8007007F).

I confirmed:

  • SAP Crystal Report Application Server OEM 2020 is installed, licensed, and running - I can connect to the port, service is running in the Configuration Manager tool
  • CR Runtime 64-bit components are installed on web server and match the version
  • IIS web app is working fine, and is 64-bit (Enable 32-bit applications is False in the web application's Application Pool) - all pages and content works except for Crystal Reports integration
  • ODBC connections are created for SQL Server as 64-bit (the rest of the ASP.NET Web app uses this connection just fine - gets data, confirmed correct DBMS and schema is used, etc.)
  • Installed the VS Redist for this version, per the SAP PDF instructions on their website for 2020 OEM edition

Solution

  • I found the root cause, or at least part of it..

    I had Shibboleth SP (version 3, if that matters) installed on the same server, and it added some components and IIS modules which seemed to cause a conflict with Crystal Reports OEM components.

    I uninstalled Shibboleth SP and I no longer get the error.

    I reinstalled Shibboleth SP and I once again get the Crystal COM error.

    Crystal doesn't like Shibboleth, and this apparently is a known issue: https://shibboleth.net/pipermail/users/2021-January/048923.html

    SysInternals Process Monitor is also helpful for confirming the problem, if this happens to you (and if you aren't using Shibboleth, i.e.: some other component is making Crystal choke.)