У нас проблема с сайтом .NET 3.5 WebForms, когда иногда наши журналы ошибок заполняются следующим сообщением об ошибке:
"Обнаружено несколько элементов управления с одинаковым идентификатором 'ctl09'. FindControl требует, чтобы элементы управления имели уникальные идентификаторы."
Я очень мало знаю об исключении, так как никогда не видел его при локальной отладке и никогда не обнаруживал его в журналах ошибок достаточно быстро, чтобы запустить сеанс удаленной отладки. Я знаю, что перезапуск пула приложений решает проблему.
Это влияет только на одну страницу с высоким трафиком на сайте. Странно то, что сайт использует логику генерации идентификатора до 4.0. Поэтому, когда страница работает, во всем источнике представления отсутствует элемент html, который не является каким-либо автоматически сгенерированным префиксом идентификатора элемента управления, за которым следуют «фактические» идентификаторы (т.е. ctl09_someID_someOtherID).
Итак, 2 основных вопроса, хотя любые идеи приветствуются:
- Что будет, если элемент управления случайным образом перестанет быть правильно построенным?
- Помимо Global.asax, как я могу перехватить эту ошибку и принудительно ... перекомпилировать элемент управления? Пул приложений для переработки?
Я в значительной степени озадачен.