web.sitemap not found but it exists
I have an ASP.net site and I created a web.sitemap file in the root directory. It contains:
<?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">
<siteMapNod开发者_开发问答e 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>
I then created a menu in my master page as follows:
<asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" Orientation="Horizontal" DataSourceID="SiteMapDataSource1" />
When I run the site I get the following error: The file web.sitemap required by XmlSiteMapProvider does not exist.
Any ideas as to what could be wrong?
Does your web.config
contain a sitemap section?
<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>
like this?
Did you call the sitemap you created web.sitemap?
If not, then you need to clear the providers in the sitemap tag & add a new provider that includes the name of your sitemap.
This shows the default entry in the root web.config that you need to clear
I fixed it. Apparently there weren't enough permissions on the web.sitemap file so whichever user the site was running as couldn't read the file. On that note, does anyone know how I can find out which user the site accesses files as?
this issue can also occur if you have created a website copying it from another website but you forgot to create the related application into IIS
精彩评论