Monday, February 20, 2017

Unable to cast object of type 'System.String' to type 'Sitecore.Analytics.Reporting.ReportDataProvider'

Sitecore + WFFM

You can face the following exception:
Exception: System.InvalidCastException
Message: Unable to cast object of type 'System.String' to type 'Sitecore.Analytics.Reporting.ReportDataProviderBase'.
Source: Sitecore.Forms.Core
   at Sitecore.Forms.Core.Dependencies.DefaultImplFactoryObjectsProvider.CreateObject[T](String configPath, Boolean assert)
   at Sitecore.WFFM.Analytics.Dependencies.ReportDataProviderWrapper.GetReportDataProviderBase(Boolean assert)
   at Sitecore.WFFM.Analytics.Providers.AnalyticsFormsDataProvider..ctor(ReportDataProviderWrapper reportDataProviderWrapper, ILogger logger, IAnalyticsTracker analyticsTracker, ISettings settings)

If it's a CD + CM server, you should remove the highlighted node from the App_Config\Include\Z.SwitchMasterToWeb\SwitchMasterToWeb.config file:

<reporting>
  <dataProvider>
<datasources>
 <add key="item">
<FiltersFactory>
 <param desc="definitionDatabaseName">web</param>
</FiltersFactory>
 </add>
 <add key="collection">
<FiltersFactory>
 <param desc="definitionDatabaseName">web</param>
</FiltersFactory>
 </add>
 <add key="reporting">
<FiltersFactory>
 <param desc="definitionDatabaseName">web</param>
</FiltersFactory>
 </add>
</datasources>
  </dataProvider>
</reporting>

This is fixed in Sitecore 8.1 Update-1 (bug number - 96933).

If it's a CD server, please comment out the whole <reporting> node because it's trying to patch the Sitecore.Analytics.Reporting.config file which has to be disabled on a CD server.

No comments:

Post a Comment