DefaultSiteMapProvider возвращает пустую карту сайта, хотя Mvc.sitemap обрабатывается

У меня проблема с проектом MvcSiteMapProvider : Моя карта сайта всегда пуста.

Я установил Mvc.sitemap , настроил записи web.config . Отладка через DefaultSiteMapProvider показывает мне, что файл .sitemap читается и обрабатывается правильно. Однако возвращенный файл Sitemap в основном пуст:


    
        
            http://localhost:59933/
        
    

Тем не менее, странная вещь случается при переходе через код. Я перехожу через DefaultSiteMapProvider и наблюдаю за корневым узлом в переменной root . В конце метода корневой узел сбрасывается на пустой узел при установке isBuildingSiteMap = false . Я понятия не имею, как это может повлиять на настройку корневого узла, но это происходит последовательно в моем проекте.

Приветствуется любая помощь по предотвращению перезаписывания узла root . :)


Аннотированная выдержка из DefaultSiteMapProvider, ближе всего к концу метода BuildSiteMap (ll. 660 ff.):

HttpContext.Current.Cache.Add(/*...*/);//At this point the root node is correct
isBuildingSiteMap = false;//after executing this line, `root` gets reset to an empty node.
siteMapXml = null;

Mvc.sitemap:


  
    
  

Запись web.config находится прямо на странице документации , только с учетом имени карты сайта.

0
nl ja de
В принципе, да; но в моем фактическом проекте у меня есть несколько поставщиков динамических узлов, все узлы которых не отображаются в сгенерированной карте сайта, даже если поставщик выполнен и правильно собирает узлы. Поступая через код в отладчике, корневой узел по-прежнему полностью отключается в указанной строке в DefaultSiteMapProvider .
добавлено автор Cornelius, источник
Я включил три провайдера в эту суть вместе с полной, фактической Mvc.sitemap (хотя она терпит неудачу таким же образом для вышеупомянутого файла Sitemap, без запуска динамических поставщиков). gist.github.com/anonymous/5047048
добавлено автор Cornelius, источник
Вы спрашиваете сыворотки, контроллер листинга не отображается в файле Sitemap?
добавлено автор Xharze, источник
Не могли бы вы разместить поставщиков динамических узлов?
добавлено автор Xharze, источник

1 ответы

Ошибка, которую я совершил, связана с добавлением DefaultNamespaces к ControllerBuilder. Сломанная линия:

ControllerBuilder.Current.DefaultNamespaces.Add("My.Framework.Web");

И должно было быть:

ControllerBuilder.Current.DefaultNamespaces.Add("My.Framework.Web.Controllers");

MVC никогда не жаловался на это, и счастливо нашел моего контроллера.

Ховер, когда строительство карты сайта завершено, DefaultSiteMapProvider ведет себя по-разному, поскольку этот IsAccessibleForUser() внезапно стал фактором при определении ChildNodes. Поставщик по умолчанию проверяет, можно ли найти контроллер для узла и не смотреть в пространствах под-имен (если пространство имен не заканчивается в . * , cf. MvcSiteMapProvider.DefaultControllerTypeResolver.IsNamespaceMatch (строка requestNamespace , string targetNamespace) ).

Поскольку я не использовал подстановочные знаки, но предполагал, что файл Sitemap будет работать, когда MVC работает, он укусил меня в тыл.

0
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)