Asp.net mvc 3 MvcSiteMap提供程序性能问题

Asp.net mvc 3 MvcSiteMap提供程序性能问题,asp.net-mvc-3,mvcsitemapprovider,asp.net-mvc-sitemap,Asp.net Mvc 3,Mvcsitemapprovider,Asp.net Mvc Sitemap,我使用的是一个动态节点提供程序,它总共包含6000个节点。第一次请求razor视图时,该视图包含 @Html.MvcSiteMap().SiteMapPath(),加载页面最多需要7500ms 这个调用占用了全部时间,因为在动态节点提供程序中评测代码需要28毫秒 如果我去掉mvc.sitemap中的所有动态节点,代码返回速度非常快 是否有任何方法预加载此-我正在使用IIS 7,因此如果IIS 7.5,则无法使用应用程序预热模块或新应用程序启动预热部分 我使用的是最新的NuGet版本3.2.1,由

我使用的是一个动态节点提供程序,它总共包含6000个节点。第一次请求razor视图时,该视图包含 @Html.MvcSiteMap().SiteMapPath(),加载页面最多需要7500ms

这个调用占用了全部时间,因为在动态节点提供程序中评测代码需要28毫秒

如果我去掉mvc.sitemap中的所有动态节点,代码返回速度非常快

是否有任何方法预加载此-我正在使用IIS 7,因此如果IIS 7.5,则无法使用应用程序预热模块或新应用程序启动预热部分


我使用的是最新的NuGet版本3.2.1

,由于以下几项增强功能,性能得到了显著提高:

  • 内部字典现在使用泛型而不是哈希表(使用System.Object)
  • 传递的类型现在是ISiteMapNode,因此在使用之前不再需要对其进行强制转换
  • 要利用.NET的System.Runtime.Caching.ObjectCache扩展点,请执行以下操作
  • ACL模块经过优化,执行速度更快
  • 请求缓存现在在一些昂贵的操作上自动完成
  • 菜单和站点地图已被修改为仅在必要时调用ACL模块