Карта сайта случайным образом повреждается со временем

У меня были некоторые производственные ошибки периода выполнения, которые я не полностью понимаю. Это произошло с нами на паре различного ASP.NET 4,0 веб-сайта (дрожь - да, я знаю - мы портируем ее на MVC, но это занимает время).

В первую очередь, мы никогда не могли воспроизвести эту проблему в средах разработки/QA. Во-вторых, после развертывания, проблема, кажется, не существует. Иногда декларации проблемы в течение дня или двух из развертывания и другие времена развертывания будут живы в течение месяца без него проявляющий вообще. Однако, после того как это проявляет, затем ЛЮБАЯ страница, просмотренная под веб-сайтом, вызывает ошибку. Наконец, эта проблема, казалось, только подходила, после того как мы мигрировали на.NET 4.0. Мы запустили в 2,0, год назад повышенный к 3,5, и недавно повысились к 4,0 с этим решением и большинством дочерних проектов.

Ошибка: Could not find the sitemap node with URL '~/Default.aspx'.

Упрощенная версия нашей карты сайта (с некоторыми именами измененные и неинтересные удаленные узлы) следующие:

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
   <siteMapNode roles="*" title="EG">
      <siteMapNode url="~/../SM/Default.aspx" title="Welcome" description="" roles="*" />
      <siteMapNode url="~/../SD/Default.aspx" title="SD" description="" roles="*" />
      <siteMapNode url="~/../SMD/Default.aspx" title="SMD" description="" roles="*" />
      <siteMapNode url="~/Default.aspx" title="Ops" description="" roles="*" >
         <siteMapNode url="~/Error.aspx" title="Error" hide="true" roles="*" />
         <siteMapNode url="~/Public/Login.aspx" hide="true" roles="*" />
         <siteMapNode url="~/Manager/LPCE.aspx" title="LPCE" description="" roles="Administrator, Manager, System, Marketer" imageUrl="~/../SM/images/icons/LF.jpg" />
      </siteMapNode>
      <siteMapNode url="~/../SDD/Default.aspx" title="SDD" description="" roles="*" />
      <siteMapNode url="~/../CCD/Default.aspx" title="CCD" description="" roles="*" />
      <siteMapNode url="~/../RD/Default.aspx" title="RD" description="" roles="*"/>
      <siteMapNode url="~/../SBD/Default.aspx" title="SBD" description="" roles="*" />
   </siteMapNode>
</siteMap>

Это регистрируется в нашем web.config:

<siteMap defaultProvider="SDXmlSiteMapProvider" enabled="true">
  <providers>
    <add name="SDXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true" />
    <add name="SecurityDisabledSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="false" />
  </providers>
</siteMap>

И от журналов я сузил то, что вызывает ошибку, находится в базовом классе, из которого в значительной степени происходят все наши страницы:

private void Page_Load(object sender, EventArgs e)
{
   if(!IsPostBack)
   {
        SiteMapDataSource.StartingNodeUrl = "~/Default.aspx";
   }
}

Я подтвердил во всех SiteMaps, что существует узел с URL = "~/Default.aspx" с ролями = "*" (который включает общедоступный/анонимный доступ), таким образом, я очень смущен относительно того, почему эта проблема происходит.

Проблемы я рассмотрел:

  1. SiteMap не имеет узла для Default.aspx. Все они делают.
  2. Узел SiteMap Default.aspx не доступен из соображений безопасности текущему пользователю/роли. Они все доступны для анонимных пользователей, и эта проблема даже существует для супер администраторских пользователей.
  3. Переданный - в URL содержит querystrings (Default.aspx? abcd). Я не знаю, является ли это проблемой (я уверенный надеялся бы не), но после того как проблема проявляется, я могу написать от руки URL без querystrings, и проблема все еще существует.
  4. Изменения SiteMap. Это не делает
  5. Полномочия сервиса в файл карты сайта. Работы карты сайта, превосходные после развертывания, поэтому если полномочия не изменяются способом, что IISRESET фиксирует, затем, это не проблема.
  6. Рабочий процесс становится глобально поврежденным.Я так не думаю. У нас есть ~12 веб-сайтов, все в том же пуле приложений и проблеме всегда остаются ограниченными в единственном веб-сайте. Кроме того, мы должны все же иметь, это происходит с больше, чем единственный веб-сайт за один раз, хотя он проявился в 4 различных до сих пор.

Кто-либо может пролить некоторый свет на это? Почти кажется, как будто динамично скомпилированный SiteMap повреждается или что-то. Единственное разрешение, которое я нашел, IISRESET или эквивалентный. И даже затем, нет никакого сообщения относительно того, сколько времени проблема будет разрешена. Это ОЧЕНЬ печально!

11
задан Jaxidian 2 August 2010 в 17:37
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: