#c# #asp.net #caching #sitecore
#c# #asp.net #кэширование #sitecore
Вопрос:
Недавно я опубликовал некоторый код на нашем производственном веб-сайте и заметил, что IIS регистрирует некоторые ошибки с текстом исключения:
Было найдено несколько элементов управления с одинаковым идентификатором ‘_ffffca417ddfd512’. FindControl требует, чтобы элементы управления имели уникальные идентификаторы.
На данный момент у меня нет трассировки стека. Страница в основном представляет собой статический контент с несколькими кнопками ссылок и кучей пользовательских элементов управления. Он также использует платформу CMS Sitecore 6.0 (это элемент содержимого). Я отключил кэширование .net для пользовательских элементов управления и страницы (layout), и, похоже, это исправило проблему, но сайт довольно загружен, и я хотел бы иметь некоторый уровень кэширования.
Мой вопрос, известно ли об этой проблеме в sitecore? И должен ли я кэшировать только на уровне страницы или на уровне управления в sitecore?
Комментарии:
1. Возможно, эта статья покажется вам интересной: sdn.sitecore.net/upload/sitecore6/sc62keywords /…
Ответ №1:
Похоже, это не проблема, связанная с Sitecore — http://support.microsoft.com/kb/834608
Если вы используете его, выключите ASP.net кэширование вывода и использование кэширования Sitecore, либо встроенного:
<sc:Sublayout runat="server" runat="server" Cacheable="true" VaryByData="true"/>
…или…
<sc:XslFile runat="server" runat="server" runat="server" Cacheable="true" VaryByData="true"/>
… или в привязках вашей презентации на уровне шаблона или элемента, или в элементе определения вложенного представления или рендеринга. Одинаковые параметры кэширования доступны во всех трех расположениях.
Ответ №2:
Кэшируйте на уровне подуровня (control), поскольку они могут быть повторно использованы на разных страницах. Это должно удовлетворить потребности в кэшировании динамических данных, предполагая, что вы максимально используете подразложения.
Ответ №3:
Нашел это в руководстве по установке Sitecore E-Commerce (Sitecore E-Commerce Services 2.1и CMS 7.0 Rev: 2013-10-17, страница 12)
В некоторых случаях, особенно при высокой загрузке сервера, редактор содержимого CMS может отображать следующее сообщение об ошибке :
Найдено несколько элементов управления с одинаковым идентификатором. FindControl требует, чтобы элементы управления имели уникальные идентификаторы
Обходной путь: Закомментируйте следующий процессор в файле web.config:
<processor type="Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor, Sitecore.Client"/>
Это предписывает редактировать содержимое или игнорировать настройки обложки для текущего элемента
. Эти настройки берутся из значения поля __Skin или ContentEditor.DefaultSkin
настройка. Теперь все элементы будут отображаться с использованием обложки по умолчанию, и вы больше не увидите сообщение об ошибке
надеюсь, это кому-нибудь поможет