SharePoint虚拟目录站点地图

时间:2010-04-13 02:33:39

标签: c# asp.net sharepoint sitemap

我使用web.sitemap文件创建了asp.net网站以帮助导航。该站点需要部署在我们的SharePoint Intranet站点内的虚拟目录中。我遇到的问题是,当我请求SiteMap.CurrentNode属性时,它将从SharePoint的站点地图返回信息。具体来说,当我尝试获取我的站点地图的标题或描述时,我从SharePoint获取信息。我尝试重新命名我的站点地图并在web.config中声明一个新的站点地图提供程序。创建新的站点地图提供程序并请求SiteMap.currentNode后,我收到一条错误消息,指出它无法找到web.sitemap文件。

非常感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

听起来您需要将虚拟目录设置为IIS中的应用程序 - 这样做:

  • 将应用程序的“base”目录重置为虚拟目录的根目录,以便web.config中的相对路径指向正确的位置,并且
  • 导致网站忽略在父文件夹中定义的任何Sharepoint web.config文件中定义的任何设置,以及
  • 还应该使您的站点地图文件成为默认值(因为它不会查看父目录中的任何web.config或站点地图)。

are other differences,但这两个似乎是您概述的问题的原因。

答案 1 :(得分:0)

我能够找出问题...事实证明,当我在web.config中声明新的站点地图提供程序时,我没有设置defaultProvider值。将默认提供程序设置为新提供程序的名称后,一切都按预期工作。

<siteMap enabled="true" defaultProvider="CPSiteMap">
  <providers>
    <add name="CPSiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="AccountMaintenance.sitemap" />
  </providers>
</siteMap>

我希望这有助于其他人。