我们遇到.NET 3.5 WebForms网站的问题,偶尔我们的错误日志会开始填写以下错误消息:
“找到了具有相同ID”ctl09“的多个控件.ViewControl要求控件具有唯一ID。”
我对异常知之甚少,因为我在本地调试时从未见过它,并且很快就没有在错误日志中捕获它以运行远程调试会话。我知道应用程序池回收可以解决问题。
这仅影响网站中的单个[高流量]页面。奇怪的是,该网站使用4.0之前的ID生成逻辑。因此,当页面正常工作时,整个视图源中没有一个html元素,它不是一些自动生成的控件ID前缀,后跟“实际”ID(即ctl09_someID_someOtherID)。
所以,2个主要问题,但欢迎任何想法:
我非常难过。
答案 0 :(得分:0)
据我所知,只有外部实体干扰页面生命周期或AJAX回发可能会导致这种情况,如果每个控件都被生成,那么你就不会“随机”体验重复的ids。
我不认为这是一个可行的选择,app pool回收?没办法,必须有一个合理的理由。
也许更多的信息/代码会有用吗?这是一个特定的页面吗?你在使用ViewState吗? “狡猾”的控制ids有很多原因。