Sitecore XConnect:尝试创建类型为“ContactsController”的控制器时出错

Jer*_*rcq 5 dependency-injection sitecore

我在 Sitecore 9 更新 1 中调用 xConnect 客户端时遇到问题。客户端对象的初始化运行良好。但是当我在客户端调用一个方法时,我得到这个异常:


{
    "Message":"An error has occurred.",
    "ExceptionMessage":"An error occurred when trying to create a controller of type 'ContactsController'. Make sure that the controller has a parameterless public constructor.",
    "ExceptionType":"System.InvalidOperationException",
    "StackTrace":"   at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
   at Sitecore.XConnect.Web.DependencyInjection.WebApiServiceControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
   at System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage request)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()",
    "InnerException":{
        "Message":"An error has occurred.",
        "ExceptionMessage":"Type 'Sitecore.XConnect.Web.Controllers.ContactsController' does not have a default constructor",
        "ExceptionType":"System.ArgumentException",
        "StackTrace":"   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)"}}
Run Code Online (Sandbox Code Playgroud)

小智 1

  1. 检查证书是否具有 MMC 中 xconnect 应用程序池的托管私钥
  2. 如果第一点现在不起作用,请尝试执行 power shell 命令:

Get-Childitem cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject} | Move-Item -Destination Cert:\LocalMachine\CA

  1. 如果第二点不起作用,请检查以下两个服务是否正在运行: 在此输入图像描述