2016-07-06 9 views
5

Dopo l'aggiornamento il mio sito 7,1-8,1 ho viene visualizzato il seguente messaggio di errore quando opneing qualsiasi pagina, nelle analisi expierence:Sitecore Experience Analytics Grafici Problema

"Il grafico 'Graph Nome' non può essere visualizzata a causa di un server errore. Contattare l'amministratore di sistema. "

La seguente chiamata spettacolo 500 errore sulla console del browser:

"http://sitename/sitecore/api/ao/aggregates/all/DC0DB760B0F54690B9EB1BBF7A4F7BD1/all?&dateGrouping=collapsed&&keyTop=8&keyOrderBy=valuePerVisit-Desc&dateFrom=07-04-2016&dateTo=05-07-2016&keyGrouping=by-key"

ho controllato il file di registro e non v'è alcun errore del server registrato lì!

Maggiori informazioni:

Il messaggio di errore: "ValueFactory ha tentato di accedere alla proprietà Value di questa istanza"

anche

 " at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.GetControllerMapping() at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, HttpConfiguration configuration, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) at System.Web.Http.Routing.AttributeRoutingMapper.<>c__DisplayClass2.<>c__DisplayClass4.<MapAttributeRoutes>b__1() at System.Web.Http.Routing.RouteCollectionRoute.EnsureInitialized(Func`1 initializer) at System.Web.Http.Routing.AttributeRoutingMapper.<>c__DisplayClass2.<MapAttributeRoutes>b__0(HttpConfiguration config) at System.Web.Http.HttpConfiguration.ApplyControllerSettings(HttpControllerSettings settings, HttpConfiguration configuration) at System.Web.Http.Controllers.HttpControllerDescriptor.InvokeAttributesOnControllerType(HttpControllerDescriptor controllerDescriptor, Type type) at System.Web.Http.Controllers.HttpControllerDescriptor..ctor(HttpConfiguration configuration, String controllerName, Type controllerType) at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.GetControllerMapping() at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, HttpConfiguration configuration, IInlineConstraintResolver constraintResolver, IDirectRouteProvider directRouteProvider) 

at System.Web.Http.Routing.AttributeRoutingMapper.<>c__DisplayClass2.<>c__DisplayClass4.<MapAttributeRoutes>b__1() at System.Web.Http.Routing.RouteCollectionRoute.EnsureInitialized(Func`1 initializer) at System.Web.Http.Routing.AttributeRoutingMapper.<>c__DisplayClass2.<MapAttributeRoutes>b__0(HttpConfiguration config) at 

System.Web.Http.HttpConfiguration.ApplyControllerSettings(HttpControllerSettings settings, HttpConfiguration configuration) at 

System.Web.Http.Controllers.HttpControllerDescriptor.InvokeAttributesOnControllerType(HttpControllerDescriptor controllerDescriptor, Type type) at 

System.Web.Http.Controllers.HttpControllerDescriptor..ctor(HttpConfiguration configuration, String controllerName, Type controllerType) at 

Sitecore.Services.Infrastructure.Web.Http.Dispatcher.NamespaceHttpControllerSelector.InitializeControllerDictionary() at System.Lazy`1.CreateValue()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Lazy`1.get_Value() at Sitecore.Services.Infrastructure.Web.Http.Dispatcher.NamespaceHttpControllerSelector.FindMatchingController(String namespaceName, String controllerName) at Sitecore.Services.Infrastructure.Web.Http.Dispatcher.NamespaceHttpControllerSelector.SelectController(HttpRequestMessage request) at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()" 

Tutte le idee?

+0

La risposta della chiamata contiene ulteriori informazioni? Se i tuoi 'CustomErrors' sono disattivati, probabilmente lo faranno. – Gatogordo

+0

Ho aggiunto ulteriori informazioni sopra. Grazie. –

risposta

1

sostegno Sitecore fornito la causa e la soluzione per questo e il pensiero aggiungerà in caso stesso problema è accaduto con qualcun altro:

causa:

Sembra che il problema è causato da un conflitto in una configurazione Web API

Per quanto posso vedere, il seguente codice viene eseguito durante l'avvio dell'applicazione:

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

Soluzione:

Come approccio alternativo, questo codice può essere spostato nella pipeline di "inizializzazione" per l'esecuzione all'avvio dell'applicazione.

Nel caso in cui il codice personalizzato venga eseguito dopo il processore Sitecore.ExperienceAnalytics.Api.Pipelines.Initialize.WebApiInitializer predefinito, la configurazione di Experience Analytics verrà caricata per prima.

Ad esempio: 1) Creare la "inizializzare" processore gasdotto

internal class WebApiInitializer 
{ 
    public void Process(PipelineArgs args) 
    { 
     System.Web.Http.GlobalConfiguration.Configure(Register); 
    } 
    public static void Register(HttpConfiguration config) 
    { 
     config.MapHttpAttributeRoutes(); 
    } 
} 

2) Creare un file di configurazione e mettere in nella Includi/Z.MapRoutes fodler (in modo che verrà caricato scorso):

<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> 
1

La causa di questo errore è che potresti utilizzare Web Api nel codice. Per integrare web API con nucleo del sito è necessario estendere la vostra global.asax come di seguito

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()); 
    } 
} 

Si può passare attraverso di seguito url per una spiegazione dettagliata https://sitecorecommerce.wordpress.com/2014/11/30/webapi-attribute-routing-is-not-working-with-sitecore-7-5/ http://blog.krusen.dk/web-api-attribute-routing-in-sitecore-7-5-and-later/

+0

Cosa ti fa pensare che questo problema sia legato all'integrazione WebAPI? –

+0

@DmytroShevchenko Ho avuto esattamente lo stesso problema quando si utilizza il routing di attributo api Web ASP.NET con sitecore –