的Response.Redirect( “page.aspx”)并不总是工作
在我的应用程序的代码:如果该方法被GenerateTeacherCountCrossRegions了很长时间执行的Response.Redirect( “page.aspx”)并不总是工作
CreditsSubjectsNamesTeacherCount n = new CreditsSubjectsNamesTeacherCount();
Session["UserID"] = n.GenerateTeacherCountCrossRegions(txtStartYear.Text.CheckOnEmptyYear(), ((UserInformation)Session["UserInformation"]).UserName);
Response.Redirect("page.aspx");
犯规重定向(〜> 10分钟)。什么会导致这个问题?
PS:加入:<httpRuntime executionTimeout="18000".. >
但它没有帮助。
谢谢。
浏览器已停止等待页面,因此不再有连接。服务器只是将重定向发送到void,其中没有人在监听。
在单独的线程中启动工作,以便响应不必等待它完成。重定向到重新加载的页面以检查工作状态,并在工作完成时重定向到最终页面。
要与后台线程进行通信,您需要两个线程都有引用的对象。您可以将对该对象的引用存储在会话变量中,以便检查状态的页面可以访问该对象。
添加后台线程+删除更新面板页,它现在的作品:)(寿没有管理进度显示功能,但仍然..) – 0x49D1 2009-12-16 13:31:42
该请求将超时,因此浏览器将显示错误而不是预期的页面。请注意,调试时可能不会发生这种情况,仅在部署时才会发生。
对于这种长时间运行的操作,考虑一个不同的接口。
我已经创建了其中所分析的数据是通过电子邮件,当它被计算发送给用户的系统:内部我已经催生断BackgroundWorker
线程这样做,那么使用MailMessage
发送报告的计算PDF附件。
为什么GenerateTaeacherCountCrossRegions方法占用10分钟以上?也许你应该在修正症状之前检查一下。 – nWorx 2009-12-16 12:20:32
确定你是对的,但是在那里做的操作太多了,没有时间优化该算法(客户满意甚至等待几小时的等待时间(他将在晚上离开报告一代)+他不支付这个功能..) – 0x49D1 2009-12-16 12:23:36