James Becwar
James Becwar

Reputation: 1206

Duplicate Control ID's leading to a exception

I recently released some code to our production website and I noticed that IIS was logging some errors with the exception text of:

Multiple controls with the same ID '_ffffca417ddfd512' were found. FindControl requires that controls have unique IDs.

I don't have a stacktrace at this point. The page is mostly static content with a few link buttons and a bunch of user controls. Its also using the Sitecore 6.0 CMS framework (its a content item). I disabled the .net caching for the user controls and the page (layout) and that seems to have fixed it, but the site is pretty busy, and I would like to have some layer of caching.

My question is this a know issue in sitecore? And, should I only cache at the page level or the control level in sitecore?

Upvotes: 2

Views: 1584

Answers (3)

ravisilva
ravisilva

Reputation: 259

Found this from Sitecore E-Commerce Installation Guide (Sitecore E-Commerce Services 2.1and CMS 7.0 Rev:2013-10-17 page 12 )

In some cases, particularly during high server load, the CMS Content Editor may display the following error message :

Multiple controls with the same ID were found . FindControl requires that controls have unique IDs

Workaround: Comment out the following processor in the web.config file:

<processor type="Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor, Sitecore.Client"/>

This instructs the Content Edit or to ignore Skin settings for the current item . These settings are taken from the value of the __Skin field or ContentEditor.DefaultSkin setting. All items will now be rendered with the default skin and you no longer see the error message

hope this helps somebody

Upvotes: 0

Paul George
Paul George

Reputation: 1817

This doesn't seem to be a Sitecore specific issue - http://support.microsoft.com/kb/834608

If you're using it, turn off ASP.net output caching and use Sitecore caching, either inline:

<sc:Sublayout runat="server" runat="server" Cacheable="true" VaryByData="true"/>

...or...

<sc:XslFile runat="server" runat="server" runat="server" Cacheable="true" VaryByData="true"/>

...or in your presentation bindings at the template or item level, or on the sublayout or rendering definition item. The same caching options are available in all three locations.

Upvotes: 1

Mark Ursino
Mark Ursino

Reputation: 31435

Cache at the sublayout (control) level as they can be reused across pages. That should satisfy the caching needs for the dynamic data assuming you leverage sublayouts as much as possible.

Upvotes: 0

Related Questions