У меня возникла проблема, связанная с тем, что навигация третичного уровня случайно исчезает на опубликованном сайте SharePoint 2010. Я могу воспроизвести исчезновение, переработав пул приложений или очистив кэш объектов. Кажется, что это проблема кэширования, поскольку поставщики навигации используют кэширование для повышения производительности. Как только меню исчезнет, я могу получить его обратно, просто перейдя в настройки навигации для SPWeb и изменив порядок узлов. Кажется, это делает кэш недействительным, и меню появляется снова.
Ниже приведен фрагмент элементов portalsitemapdatasource и 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 не очень помог, поэтому любая оказанная помощь очень ценится.
Edit: только что заметил, что мне не нужно было менять порядок узлов для пунктов меню, чтобы появиться снова, просто загрузка страницы _layouts / AreaNavigationSettings.aspx для объекта SPWeb делает свое дело. Это похоже на проблему с кешем.