Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 找不到web.sitemap,但它已存在_Asp.net_Web.sitemap - Fatal编程技术网

Asp.net 找不到web.sitemap,但它已存在

Asp.net 找不到web.sitemap,但它已存在,asp.net,web.sitemap,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" descript

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


关于可能出现的错误有什么想法吗?

您是否将创建的网站地图命名为web.sitemap

如果没有,则需要清除站点地图标记中的提供程序&添加一个包含站点地图名称的新提供程序


显示根web.config中需要清除的默认条目您的
web.config
是否包含站点地图部分



像这样吗?

我修好了。显然,对web.sitemap文件没有足够的权限,因此无论站点运行的是哪个用户,都无法读取该文件。请注意,是否有人知道我如何找到该网站访问文件的用户?

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

根目录是应用程序目录吗?是,它是应用程序目录是,它名为web.sitemap,站点地图的配置文件中没有任何内容。我被难倒了…这取决于平台。在XP上是aspnet,但在Win2003及更高版本(iis 6和7)上,您正在寻找由networkservice运行的w3wp进程。很酷,谢谢。这有助于澄清这一点。但这很奇怪,因为我给了网络服务对该站点的完全权限。啊,现在可以了:)你是如何向用户添加权限的?右键单击文件,转到“属性”,然后转到“安全性”,在那里你可以编辑权限
<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>