以前叫:aspx中如何处理加载下动态创建的控件
回答以下问题:确定要恢复哪些控件所需的信息包含在专用视图状态对象中。
我在代码隐藏页面中动态创建控件 - 这些控件都连接到单击处理程序,因此当发生回发时,我必须重新创建前一组控件,然后清除控件并根据上一次点击。
这在正常情况下编码并正常工作,基本上如下:
in Page_Load
if not postback generate default buttons
else if postback re-generate buttons that were shown on last page
in click_handler
Clear the dynamically generated buttons created in the Page_Load
generate new buttons based on the specific click being handled
但是,当服务器承受负载时,我们开始遇到问题:
每秒有 5 个用户时,我们开始遇到异常: 找到具有相同 ID 'add0' 的多个控件。FindControl 要求控件具有唯一的 ID。
每秒有 100 个用户时,我们开始遇到异常: 在 DataBind、Init、Load、PreRender 或 Unload 阶段无法修改控件集合。
一旦发生这种情况,所有后续请求都会收到相同的错误,并且必须重新启动 IIS。
可能是什么原因造成的,我该如何避免?html 请求在负载下是否可能会相互覆盖和干扰?页面卸载后对象是否以某种方式传递,从而允许下一页加载绊倒它们?