我最近向我们的生产网站发布了一些代码,我注意到IIS正在使用以下异常文本记录一些错误:
找到了具有相同ID'_ffffca417ddfd512'的多个控件。 FindControl要求控件具有唯一ID。
此时我没有堆栈跟踪。该页面主要是静态内容,带有一些链接按钮和一堆用户控件。它还使用Sitecore 6.0 CMS框架(它是一个内容项)。我为用户控件和页面(布局)禁用了.net缓存,这似乎修复了它,但是网站非常繁忙,我希望有一些缓存层。
我的问题是这是sitecore中的一个已知问题?而且,我应该只在页面级别或sitecore中的控件级别缓存吗?
答案 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的值 设置。现在,所有项目都将使用默认外观呈现,您不再看到错误消息
希望这有助于某人