"Exception calling GetService() - Service Type: "ContactsController"" in xConnect collection search logs


Description

After upgrading to Sitecore XP 10.1.0, the following error might appear in the log records:

2021-04-13 14:49:19.603 +00:00 [Warning] Exception calling GetService() - Service Type: "ContactsController"
System.InvalidOperationException: Unable to resolve service for type 'Sitecore.Xdb.ReferenceData.Core.IReferenceDataClient' while attempting to activate 'Sitecore.Marketing.Operations.Xdb.ReferenceData.Service.Definitions.Profiles.ProfileDefinitionReferenceDataRepository'.
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
...
2021-04-13 14:49:19.634 +00:00 [Error] XConnect Exception Logger LogAsync()
System.InvalidOperationException: An error occurred when trying to create a controller of type 'ContactsController'. Make sure that the controller has a parameterless public constructor. ---> System.ArgumentException: Type 'Sitecore.XConnect.Web.Controllers.ContactsController' does not have a default constructor
at System.Linq.Expressions.Expression.New(Type type)
at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request, Type controllerType, Func`1& activator)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)

The root cause of the issue is that the xConnect Collection Search Solr web deploy package
Sitecore 10.1.0 rev. 005207 (Cloud)_xp1collectionsearchsolr.scwdp.zip contains the following files disabled:

Experience Profile or List Manager might not work, or might display errors.

Solution

To resolve the issue:

  1. Enable the following files on the xConnect Collection Search instance by removing the ".disabled" suffix:
    • App_Data\Config\Sitecore\ReferenceData\sc.XConnect.ReferenceData.Core.Initialize.xml.disabled
    • App_Data\Config\Sitecore\ReferenceData\sc.XConnect.ReferenceData.Service.Initialize.xml.disabled
    • App_Data\Config\Sitecore\ReferenceData\sc.XConnect.ReferenceData.SqlServer.Initialize.xml.disabled
  2. Restart the instance.