2011-06-09 7 views
6

Tengo un problema donde el nivel terciario de navegación desaparece al azar en una publicación de sitio de SharePoint 2010. Puedo reproducir la desaparición reciclando el grupo de aplicaciones o vaciando el caché de objetos. Parece que se trata de un problema de almacenamiento en caché, ya que los proveedores de navegación usan el almacenamiento en caché para obtener rendimiento. Una vez que el menú desaparece, puedo recuperarlo simplemente yendo a la configuración de navegación de SPWeb y cambiando el orden de los nodos. Esto parece invalidar la memoria caché y el menú aparece nuevamente.SharePoint 2010 de navegación terciaria dissappearing en AppPool de reciclaje y/o enrojecimiento de la memoria caché de objetos

A continuación se muestra un fragmento de los elementos portalsitemapdatasource y aspmenu.

<publishingnavigation:portalsitemapdatasource id="mapThirdLevelNavigation" runat="server" 
     sitemapprovider="CurrentNavigation" enableviewstate="false" startfromcurrentnode="true" 
     startingnodeoffset="1" showstartingnode="false" TreatStartingNodeAsCurrent="False" /> 

    <sharepoint:aspmenu id="mnuBottomNavigation" runat="server" datasourceid="mapTopNavigation" 
     enableviewstate="false" accesskey="<%$Resources:wss,navigation_accesskey%>" 
     orientation="Horizontal" maximumdynamicdisplaylevels="0" dynamichorizontaloffset="0" 
     staticpopoutimagetextformatstring="" skiplinktext="" staticsubmenuindent="0" 
     cssclass="bottom-topNavContainer" /> 

Google no ha sido muy útil por lo que cualquier ayuda proporcionada es muy apreciada.

Editar: Solo me di cuenta de que no era necesario cambiar el orden de los nodos para que los elementos del menú reapareciesen, solo cargando la página _layouts/AreaNavigationSettings.aspx para el objeto SPWeb funciona el truco. Se ve aún más como un problema de caché.

Respuesta

2

intente aumentar el valor de DynamicChildLimit en web.config.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.navigation.portalsitemapprovider.dynamicchildlimit.aspx

Esto se menciona en una línea donde proveedor de navegación se declara como

add name="CurrentNavSiteMapProvider" description="CMS provider for Current navigation" 
    type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider" 
    NavigationType="Current" EncodeOutput="true" /> 

DynamicChildLimit, que es una propiedad de entero que especifica el máximo de los niños "dinámicas" para cada sitio web (los niños dinámicos incluyen subsitios y páginas). Este valor predeterminado es 50, por lo que si la cantidad de subsitios y páginas para un sitio web en particular es mayor a 50 objetos, se omitirán a menos que usted ajuste esta configuración. Este límite puede aumentarse, pero tenga en cuenta la usabilidad de una jerarquía de navegación que tenga tantos niños en cada pivote.

+0

Nada que ver con la propiedad DynamicChildLimit ya que era capaz de reproducir esto en un sitio OOTB con dos subsitios y 5 páginas es decir, menos de 10 elementos de menú. –

-1

I resolved a similar problem: en el control PortalSiteMapDataSource Cambié el atributo SiteMapProvider de CurrentNavigation a CurrentNavSiteMapProvider.

Cuestiones relacionadas