运行时HttpException只影响一个页面/ usercontrol

时间:2010-05-26 14:53:17

标签: asp.net .net-3.5 webforms runtime-error

我们遇到.NET 3.5 WebForms网站的问题,偶尔我们的错误日志会开始填写以下错误消息:

“找到了具有相同ID”ctl09“的多个控件.ViewControl要求控件具有唯一ID。”

我对异常知之甚少,因为我在本地调试时从未见过它,并且很快就没有在错误日志中捕获它以运行远程调试会话。我知道应用程序池回收可以解决问题。

这仅影响网站中的单个[高流量]页面。奇怪的是,该网站使用4.0之前的ID生成逻辑。因此,当页面正常工作时,整个视图源中没有一个html元素,它不是一些自动生成的控件ID前缀,后跟“实际”ID(即ctl09_someID_someOtherID)。

所以,2个主要问题,但欢迎任何想法:

  1. 控件随机停止正确构建会是什么情况?
  2. 除了Global.asax之外,我如何捕获此错误并强制控件重新编译?应用程序池要回收?
  3. 我非常难过。

1 个答案:

答案 0 :(得分:0)

  1. 据我所知,只有外部实体干扰页面生命周期或AJAX回发可能会导致这种情况,如果每个控件都被生成,那么你就不会“随机”体验重复的ids。

  2. 我不认为这是一个可行的选择,app pool回收?没办法,必须有一个合理的理由。

  3. 也许更多的信息/代码会有用吗?这是一个特定的页面吗?你在使用ViewState吗? “狡猾”的控制ids有很多原因。