找不到web.sitemap但它存在

时间:2011-04-07 17:28:35

标签: asp.net web.sitemap

我有一个ASP.net站点,我在根目录中创建了一个web.sitemap文件。它包含:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode>
    <siteMapNode url="~/Default.aspx" title="Home" description="Rado Home" />
    <siteMapNode url="" title="Structural" description="">
      <siteMapNode url="" title="Doors" description=""/>
      <siteMapNode url="" title="Staircases" description=""/>
      <siteMapNode url="" title="Post Boxes" description=""/>
    </siteMapNode>

    <siteMapNode url="" title="Functional">
      <siteMapNode url="" title="Tables" />
      <siteMapNode url="" title="Features" />
    </siteMapNode>
    <siteMapNode url="" title="Sculpture">
      <siteMapNode url="" title="Wall" />
      <siteMapNode url="" title="Free Standing" />
    </siteMapNode>
    <siteMapNode url="" title="Smithing">
      <siteMapNode url="" title="Gold" />
      <siteMapNode url="" title="Silver" />
      <siteMapNode url="" title="Copper" />
    </siteMapNode>
    <siteMapNode url="~/About.aspx" title="About"/>
    <siteMapNode url="~/Contact.aspx" title="Contact"/>
  </siteMapNode>
 </siteMap>

然后,我在母版页中创建了一个菜单,如下所示:

<asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server" />
            <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" Orientation="Horizontal" DataSourceID="SiteMapDataSource1" />

当我运行该网站时,我收到以下错误: XmlSiteMapProvider所需的文件web.sitemap不存在。

关于什么可能出错的任何想法?

4 个答案:

答案 0 :(得分:2)

您的web.config是否包含站点地图部分?

<siteMap>
  <providers>
    <add name="SiteMapDataSource1" description="Default SiteMap provider." type="System.Web.XmlSiteMapProvider" siteMapFile="/MyApplication/Web.sitemap" />
    <add name="AdminSiteMap" description="Default SiteMap provider." type="System.Web.XmlSiteMapProvider" siteMapFile="/MyApplication/Admin.sitemap"  />
  </providers>
</siteMap>

像这样?

答案 1 :(得分:1)

您是否调用了您创建的网站地图web.sitemap?

如果没有,那么您需要清除站点地图标记中的提供商。添加一个包含站点地图名称的新提供商。

This显示您需要清除的根web.config中的默认条目

答案 2 :(得分:0)

我修好了。显然,web.sitemap文件没有足够的权限,因此该网站运行的任何用户都无法读取该文件。在那个问题上,有没有人知道如何找出网站访问文件的用户?

答案 3 :(得分:0)

如果您创建的网站从其他网站复制但您忘记在IIS中创建相关应用程序,也会发生此问题