昨晚,我们的一位用户发现了一个网站问题,该网站在5个月内没有进行编码更改:
发生错误,因为ID为'xxx'的控件无法执行 找到位置或不同的控件后分配给相同的ID 回发。如果未分配ID,请显式设置ID属性 用于引发回发事件的控件以避免此错误。
我想知道什么条件可能导致此错误发生或者它是否必须是代码错误?例如低内存,紧张的CPU等?
引用的.ascx文件明确指定了一个id。
堆栈跟踪:
DotNetNuke.Services.Exceptions.PageLoadException:错误有 因为带有id的控件而发生 'dnn $ ctr387 $ Dispatch $ Default $ rptToDos $ ctl00 $ ctl00'不可能 找到位置或不同的控件后分配给相同的ID 回发。如果未分配ID,请显式设置ID属性 引发回发事件的控件以避免此错误。 ---> System.Web.HttpException:由于控件带有错误,因此发生错误 id'dnn $ ctr387 $ Dispatch $ Default $ rptToDos $ ctl00 $ ctl00'不可能 找到位置或不同的控件后分配给相同的ID 回发。如果未分配ID,请显式设置ID属性 引发回发事件的控件以避免此错误。在 System.Web.UI.Page.ProcessPostData(NameValueCollection postData, System.Web.UI.Page.ProcessRequestMain的布尔值fBeforeLoad(布尔值 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) ---内部异常堆栈跟踪结束---
答案 0 :(得分:2)
我解决这个问题的方法;
为所有控件分配唯一ID值,例如“Label”,“Button”,“Table”,“Div”等。 (但不包括“tr”和“td”)
答案 1 :(得分:1)
嘿戴夫回收应用程序池修复了吗?
我不确定它是什么,但我偶尔会遇到一些第三方dnn模块。我记得最后一个是一些Ajax旋转器。将应用程序池设置为按时间间隔回收是一个临时修复,但我最终将模块换出。不确定它发生了什么。
答案 2 :(得分:0)
某些东西必须改变。更改可能不在该代码中,但在某处发生了某些变化。它可以是从IIS设置或web.config设置到升级或安装的任何内容,但最近该服务器上的某些内容发生了变化。根据我的经验,代码并不是恶意的,它不会让我感到不安并决定停止工作;)
我将验证IIS配置并检查web.config,并查看事件日志以查看最近是否在服务器上进行了任何维护。