重复的控制ID导致异常

时间:2011-11-08 04:04:51

标签: c# asp.net caching sitecore

我最近向我们的生产网站发布了一些代码,我注意到IIS正在使用以下异常文本记录一些错误:

  

找到了具有相同ID'_ffffca417ddfd512'的多个控件。 FindControl要求控件具有唯一ID。

此时我没有堆栈跟踪。该页面主要是静态内容,带有一些链接按钮和一堆用户控件。它还使用Sitecore 6.0 CMS框架(它是一个内容项)。我为用户控件和页面(布局)禁用了.net缓存,这似乎修复了它,但是网站非常繁忙,我希望有一些缓存层。

我的问题是这是sitecore中的一个已知问题?而且,我应该只在页面级别或sitecore中的控件级别缓存吗?

3 个答案:

答案 0 :(得分: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"/>

...或在模板或项目级别的演示文稿绑定中,或在子布局或渲染定义项上。所有三个位置都提供相同的缓存选项。

答案 1 :(得分:0)

在子布局(控制)级别缓存,因为它们可以跨页面重用。这应该满足动态数据的缓存需求,假设您尽可能地利用子布局。

答案 2 :(得分:0)

从Sitecore电子商务安装指南(Sitecore电子商务服务2.1和CMS 7.0修订版:2013-10-17第12页)中找到此内容

  

在某些情况下,特别是在高服务器负载期间,CMS内容编辑器可能会显示   以下错误消息:

     

找到了具有相同ID的多个控件。 FindControl要求控件具有唯一ID

     

解决方法:在web.config文件中注释掉以下处理器:

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

指示内容编辑或忽略当前项目的外观设置   。这些设置取自__Skin字段或ContentEditor.DefaultSkin的值   设置。现在,所有项目都将使用默认外观呈现,您不再看到错误消息

希望这有助于某人