Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sitecore体验分析图表问题_Sitecore_Sitecore8 - Fatal编程技术网

Sitecore体验分析图表问题

Sitecore体验分析图表问题,sitecore,sitecore8,Sitecore,Sitecore8,将我的网站从7.1升级到8.1后,在expierence analytics中选择任何页面时,会出现以下错误消息: “由于服务器错误,“图形名称”图形无法显示。请与您的系统管理员联系。” 浏览器控制台上的以下调用显示500错误: “” 我检查了日志文件,那里没有记录服务器错误 更多信息: 错误消息: “ValueFactory试图访问此实例的Value属性。” 也 System.Web.Http.Dispatcher.DefaultHttpControllerSelector.GetContro

将我的网站从7.1升级到8.1后,在expierence analytics中选择任何页面时,会出现以下错误消息:

“由于服务器错误,“图形名称”图形无法显示。请与您的系统管理员联系。”

浏览器控制台上的以下调用显示500错误:

“”

我检查了日志文件,那里没有记录服务器错误

更多信息:

错误消息: “ValueFactory试图访问此实例的Value属性。”

System.Web.Http.Dispatcher.DefaultHttpControllerSelector.GetControllerMapping()位于System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries的System.Lazy`1.LazyInitValue()位于System.Web.Http.Dispatcher.DefaultHttpControllerSelector.GetControllerMapping()位于System.Web.Http.Routing.AttributeRoutingMapper.c_uDisplayClass2.c_uDisplayClass4.b_u1()的System.Web.Http.Routing.RouteCollectionRoute.EnsureInitialized(funct`1初始值设定项)在System.Web.Http.Http.Routing.AttributeRoutingMapper.c__中显示System.Web.Http.HttpConfiguration.ApplyController设置(HttpControllerSettings,HttpConfiguration配置)中System.Web.Http.Controllers.HttpControllerDescriptor.InvokeAttributesOnControllerType中的Class2.b__u0(HttpConfiguration配置)(HttpControllerDescriptor controllerDescriptor,Type Type)在System.Web.Http.Controllers.HttpControllerDescriptor..ctor(HttpConfiguration配置,字符串controllerName,Type controllerType)在System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInFoccache()在System.Lazy`1.CreateValue()上位于System.Web.Http.Dispatcher.DefaultHttpControllerSelect.GetControllerMapping()的System.Lazy`1.LazyInitValue()位于System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubcuteCollection收集器、HttpConfiguration配置、IInlineConstraintResolver constraintResolver、IDirectRouteProvider directRouteProvider) 位于System.Web.Http.Routing.RouteCollectionRoute.EnsureInitialized(Func`1初始值设定项)处的System.Web.Http.Routing.AttributeRoutingMapper.c_uuuDisplayClass2.c_uuDisplayClass4.b_u1()处的System.Web.Http.Routing.AttributeRoutingMapper.c_uDisplayClass2.b_u0(HttpConfiguration配置)处的 System.Web.Http.HttpConfiguration.ApplyControllerSettings(HttpControllerSettings设置,HttpConfiguration配置)位于 位于的System.Web.Http.Controllers.HttpControllerDescriptor.InvokeAttributesOnControllerType(HttpControllerDescriptor controllerDescriptor,Type) 位于的System.Web.Http.Controllers.HttpControllerDescriptor..ctor(HttpConfiguration配置,字符串controllerName,类型controllerType) Sitecore.Services.Infrastructure.Web.Http.Dispatcher.NamespaceHttpControllerSelector.InitializeControllerDictionary()位于System.Lazy`1.CreateValue()---从引发异常的前一个位置开始的堆栈结束跟踪---位于System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()位于System.Lazy`1.get_Value()位于Sitecore.Services.Infrastructure.Web.Http.Dispatcher.NamespaceHttpControllerSelector.FindMatchingController(字符串namespaceName,字符串controllerName),位于Sitecore.Services.Infrastructure.Web.Http.Dispatcher.NamespaceHttpControllerSelector.SelectController(HttpRequestMessage请求)位于System.Web.Http.Dispatcher.HttpControllerDispatcher.d_u1.MoveNext()
有什么想法吗?

导致此错误的原因可能是您的代码中使用了Web Api。要将Web Api与站点核心集成,您需要扩展global.asax,如下所示

 public class GlobalExtended : Sitecore.Web.Application
{
   protected void Application_Start(object sender, EventArgs e)
   {
    GlobalConfiguration.Configure(ConfigureRoutes);
    }

  public static void ConfigureRoutes(HttpConfiguration config)
  {
   config.Routes.MapHttpRoute("DefaultApiRoute",
    "api/{controller}/{action}/{id}",
     new { id = RouteParameter.Optional });

    GlobalConfiguration.Configuration.MapHttpAttributeRoutes();
    GlobalConfiguration.Configuration.Formatters.Clear();
    GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());
   }
}
您可以通过下面的url进行详细解释

Sitecore支持部门提供了这方面的原因和解决方案,Think将在其他人出现相同问题时添加这一点:

原因:

问题似乎是由Web API配置中的冲突引起的

据我所见,在应用程序启动期间执行以下代码:

void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
    System.Web.Http.GlobalConfiguration.Configure(MyDll.WebApiConfig.Register);
}
解决方案:

作为一种替代方法,可以将此代码移动到“初始化”管道,以便在应用程序启动时运行

如果自定义代码在默认Sitecore.ExperienceAnalytics.Api.Pipelines.Initialize.WebAPI初始值设定程序处理器之后运行,则将首先加载Experience Analytics配置

例如: 1) 创建“初始化”管道处理器

internal class WebApiInitializer
{
    public void Process(PipelineArgs args)
    {
        System.Web.Http.GlobalConfiguration.Configure(Register);
    }
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();
    }
}
2) 创建一个配置文件并放入Include/Z.MapRoutes fodler中(以便最后加载):



呼叫响应是否包含更多信息?如果您的
customErrors
已关闭,则可能会关闭。我在上面添加了更多信息。谢谢。是什么让你认为这个问题与WebAPI集成有关?@DmytroShevchenko当我们在sitecore中使用ASP.NET web api属性路由时,我遇到了完全相同的问题
internal class WebApiInitializer
{
    public void Process(PipelineArgs args)
    {
        System.Web.Http.GlobalConfiguration.Configure(Register);
    }
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();
    }
}
<configuration xmlns:x="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <pipelines>
      <initialize>
        <processor type="HttpAttributeRouting.WebApiInitializer, HttpAttributeRouting" x:after="processor[position()=last()]" />
      </initialize>
    </pipelines>
  </sitecore>
</configuration>