有人可以建议这个症状吗?我有一个ASPX页面,它继承自我自己的自定义“基页”类,该页面还包含一个ASCX控件,它可能相关也可能不相关。
问题如下:
1.页面启动并触发Global.asax中的Session_Start事件
2.后面的页面代码运行并包括页面的所有各种PreRender事件和包含的控件
3. ASCX代码中的Render事件处理程序在触发事件时运行,在此期间它调用其底层“MyBase”(= Control)的Render处理程序
4.基页类中的Render事件处理程序运行,在此期间它调用其底层'MyBase'(= Page)的Render处理程序。
5.此时,Global.asax代码中的Session_Start处理程序再次运行,相关事件再次明显发生,然后再将页面调度到浏览器而不再运行代码的任何其他部分。
我认为Session_Start代码的重新生成导致我正确维护会话的麻烦,但SessionID不会因处理程序加倍而改变。
有人知道这个序列是多么正常,我是否正确地将其识别为问题?如果代码表现正常,我是否应该始终期望Render-ing事件成为最后运行的处理程序?如果没有,那么确定原因的最佳方法是什么?在ASCX控件中有一个基于iframe的富文本编辑器,从我到目前为止的调查来看,似乎Iframe的存在会导致会话重启。但是,我是否应该期望会话能够应对这种情况,并在其他地方查找任何会话持久性问题的解释?
非常感谢你能提供一些解决方法。