4

我有一个 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

4 回答 4

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>

像这样?

于 2011-04-07T20:46:31.810 回答
1

您是否将创建的站点地图称为 web.sitemap?

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

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

于 2011-04-07T17:54:55.093 回答
0

我修好了它。显然,web.sitemap 文件没有足够的权限,因此无论该站点运行的哪个用户都无法读取该文件。在那张纸条上,有谁知道我如何找出该站点以哪个用户身份访问文件?

于 2011-04-07T20:46:36.563 回答
0

如果您创建了一个从另一个网站复制它的网站,但您忘记将相关应用程序创建到 IIS 中,也会出现此问题

于 2012-07-09T11:33:29.380 回答