web.sitemap не найден, но существует - PullRequest
4 голосов
/ 07 апреля 2011

У меня есть сайт 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" />

Когда я запускаю сайт, я получаю следующую ошибку: Требуется файл web.sitemapот XmlSiteMapProvider не существует.

Есть идеи, что может быть не так?

Ответы [ 4 ]

2 голосов
/ 08 апреля 2011

Содержит ли ваш 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 голос
/ 07 апреля 2011

Вы позвонили в созданную вами карту сайта web.sitemap?

Если нет, то вам нужно очистить поставщиков в теге sitemap и добавить нового поставщика, который включает имя вашей карты сайта.

Это показывает запись по умолчанию в корневом web.config, которую нужно очистить

0 голосов
/ 09 июля 2012

эта проблема также может возникнуть, если вы создали веб-сайт, скопировав его с другого веб-сайта, но забыли создать соответствующее приложение в IIS

0 голосов
/ 08 апреля 2011

Я исправил это.Очевидно, не было достаточных разрешений для файла web.sitemap, поэтому тот, кто работал на сайте, не мог прочитать файл.На этой ноте кто-нибудь знает, как я могу узнать, какой пользователь сайта обращается к файлам как?

...