xConnectコレクションの検索ログに「Exception calling GetService() - Service Type: "ContactsController"」が表示される


概要

Sitecore XP 10.1.0にアップグレードした後、ログに下記のエラーが出力されることがあります。

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)

本問題の原因は、xConnect Collection Search SolrのWebデプロイパッケージである
Sitecore 10.1.0 rev.005207 (Cloud)_xp1collectionsearchsolr.scwdp.zipで、下記のファイルが無効になっていることです。

これにより、エクスペリエンス プロファイルやリスト マネージャーが動作しない、またはエラーが表示される場合があります。

解決策

本問題を解決するには、下記の手順をご実行ください。

  1. xConnect Collection Search インスタンスで下記のファイルを有効化します。有効化するには、接尾辞「.disabled」を削除します。
    • 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. インスタンスを再起動します。