【问题标题】:web.sitemap not found but it exists未找到 web.sitemap 但存在
【发布时间】:2011-04-07 17:28:34
【问题描述】:

我有一个 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 文件不存在。

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

【问题讨论】:

  • 根目录是应用程序目录吗?
  • 是的,它是一个应用程序目录

标签: asp.net web.sitemap


【解决方案1】:

您的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>

喜欢这样吗?

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 是的,它被称为 web.sitemap,并且站点地图的配置文件中没有任何内容。我被难住了……
    【解决方案3】:

    我修好了。显然 web.sitemap 文件没有足够的权限,因此无论该网站运行的用户是哪个用户都无法读取该文件。关于这一点,有谁知道我如何找出该站点以哪个用户身份访问文件?

    【讨论】:

    • 这取决于平台。在 XP 上它是 aspnet,但在 Win2003 及更高版本(iis 6 和 7)上,您正在寻找由 networkservice 运行的 w3wp 进程。
    • 酷,谢谢。它有助于清除它。这很奇怪,因为我授予了网络服务对该站点的完全权限。嗯,现在可以了 :)
    • 你是如何给用户添加权限的?
    • 右击文件,进入属性,然后进入安全,您可以在其中编辑权限
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2021-07-17
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 2013-01-25
      • 2020-04-05
      • 1970-01-01
      相关资源
      最近更新 更多