Дублированный контрольный идентификатор приводит к исключению - PullRequest
2 голосов
/ 08 ноября 2011

Недавно я опубликовал некоторый код на нашем производственном веб-сайте и заметил, что IIS регистрирует некоторые ошибки, за исключением текста:

Обнаружено несколько элементов управления с одинаковым идентификатором _ffffca417ddfd512.FindControl требует, чтобы элементы управления имели уникальные идентификаторы.

На данный момент у меня нет трассировки стека.Страница в основном статическая, с несколькими кнопками ссылок и набором пользовательских элементов управления.Также используется платформа CMS Sitecore 6.0 (это элемент контента).Я отключил .net кеширование для пользовательских элементов управления и страницы (макета), и это, кажется, исправило это, но сайт довольно занят, и я хотел бы иметь некоторый слой кеширования.

Мой вопрос - это известная проблема в sitecore?И стоит ли кэшировать только на уровне страницы или уровне управления в sitecore?

Ответы [ 3 ]

1 голос
/ 11 ноября 2011

Похоже, что эта проблема не связана с 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"/>

... или в ваших презентациях привязок на уровне шаблона или элемента, или на подслое или рендеринге пункт определения .Одинаковые опции кэширования доступны во всех трех местах.

0 голосов
/ 08 августа 2014

Обнаружено в Руководстве по установке электронной коммерции Sitecore (Сервисы электронной коммерции Sitecore 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. установка. Все элементы теперь будут отображаться со скином по умолчанию, и вы больше не увидите сообщение об ошибке

надеюсь, это кому-нибудь поможет

0 голосов
/ 08 ноября 2011

Кэширование на уровне подуровня (контроля), так как они могут быть повторно использованы на разных страницах.Это должно удовлетворить потребности в кешировании динамических данных, при условии, что вы используете максимально возможное количество подуровней.

...