I have a tertiary level navigation problem on a SharePoint 2010 publishing website. I can reproduce the disappearance by disposing of the application pool or clearing the object cache. This seems to be a caching issue, as navigation providers use caching to improve performance. When the menu disappears, I can return it by simply going to the navigation settings for SPWeb and changing the order of the nodes. This is similar to cache invalidation and the menu reappears.
The following is a snippet of the portalsitemapdatasource and aspmenu files.
<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 is not very useful, so any help is provided very highly.
Edit: I just noticed that I donโt need to change the order of nodes for menu items to appear again, just loading the _layouts / AreaNavigationSettings.aspx page for the SPWeb object does the trick. This is even more like a cache problem.
source share