最近将开发的系统升级到ASP.net2.0,大部分功能都正常,但遇到一个小问题,请各位研究了ASP.net2.0的高人赐教。
系统的菜单是自己写的自定义控件,继承于System.Web.UI.WebControls.WebControl,重写了AddAttributesToRender和RenderContents方法。由于控件是从数据库读出菜单明细,所以在页面调用该控件之前使用了一个过渡效果,先呈现一个GIF动画,然后隐藏该动画层,显示菜单。过渡效果代码如下: Response.Buffer = true;
Response.Write("<div id='processdiv' align='center' style='font-size: 9pt;color: #002957;'>");
Response.Write("<br>加载菜单<br>");
Response.Write("<img src='pic/loading.gif' width='94' height='17' align='absmiddle'>");
Response.Write("</div>");
Response.Write("<script language=javascript>");
Response.Write("var dots = 0;var dotmax = 10;");
Response.Write("function StartShowWait(){processdiv.style.visibility = 'visible'; }");
Response.Write("function HideWait(){processdiv.style.display = 'none';");
Response.Write("window.clearInterval();}");
Response.Write("StartShowWait();</script>");
Response.Flush(); 该功能在ASP.net1.1中使用正常,但升级到2.0后,每次访问菜单页面都会报错:异常详细信息: System.Web.HttpException: 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它。堆栈跟踪: [HttpException (0x80004005): 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它。]
System.Web.SessionState.SessionIDManager.SaveSessionID(HttpContext context, String id, Boolean& redirected, Boolean& cookieAdded) +2172127
System.Web.SessionState.SessionStateModule.CreateSessionId() +55
System.Web.SessionState.SessionStateModule.DelayedGetSessionId() +64
System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +328
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64 经查MSDN,发现HttpResponse.Flush 方法在发送了响应之后刷新缓存的情况下,会抛出HttpException异常,感觉和这个有关系,不知道是不是在2.0里面强化了某些机制…… 这种情况该如何解决呢?多谢!
系统的菜单是自己写的自定义控件,继承于System.Web.UI.WebControls.WebControl,重写了AddAttributesToRender和RenderContents方法。由于控件是从数据库读出菜单明细,所以在页面调用该控件之前使用了一个过渡效果,先呈现一个GIF动画,然后隐藏该动画层,显示菜单。过渡效果代码如下: Response.Buffer = true;
Response.Write("<div id='processdiv' align='center' style='font-size: 9pt;color: #002957;'>");
Response.Write("<br>加载菜单<br>");
Response.Write("<img src='pic/loading.gif' width='94' height='17' align='absmiddle'>");
Response.Write("</div>");
Response.Write("<script language=javascript>");
Response.Write("var dots = 0;var dotmax = 10;");
Response.Write("function StartShowWait(){processdiv.style.visibility = 'visible'; }");
Response.Write("function HideWait(){processdiv.style.display = 'none';");
Response.Write("window.clearInterval();}");
Response.Write("StartShowWait();</script>");
Response.Flush(); 该功能在ASP.net1.1中使用正常,但升级到2.0后,每次访问菜单页面都会报错:异常详细信息: System.Web.HttpException: 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它。堆栈跟踪: [HttpException (0x80004005): 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它。]
System.Web.SessionState.SessionIDManager.SaveSessionID(HttpContext context, String id, Boolean& redirected, Boolean& cookieAdded) +2172127
System.Web.SessionState.SessionStateModule.CreateSessionId() +55
System.Web.SessionState.SessionStateModule.DelayedGetSessionId() +64
System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +328
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64 经查MSDN,发现HttpResponse.Flush 方法在发送了响应之后刷新缓存的情况下,会抛出HttpException异常,感觉和这个有关系,不知道是不是在2.0里面强化了某些机制…… 这种情况该如何解决呢?多谢!
解决方案 »
- 关于VS2005 C#后台处理JSON的方法
- asp.net怎样实现通用网址查询
- 计算机研究生在学校里学什么,毕业后做什么(从事.NET开发还用培训吗)?
- 当鼠标悬浮在一个带链接的image控件上让他显示他的详细信息?
- 多个表的合并后(union all),如何获得前 10 条记录???
- 急有做过移动sso接口的开发吗?
- 为什么系统读不出dropdownlist的选择值
- 请问大家DataGrid中如何得到"编辑"后的text框内容啊
- 我在DataGrid的ItemDataBound中为DataGrid添加了一个CheckBox列用来批量删除数据但为什么在执行删除程序时提示找不到CheckBox列.
- dropdownlist一问题请教:
- 求助,能不能在DataGrid的ButtonClumn列的按钮上加上Confirm确认对话框
- 急急急!ASP.NET中的sql语句里怎么用substring()函数
一定要用AJAX吗?