繁体   English   中英

Response.Redirect(“ page.aspx”)并不总是有效

[英]Response.Redirect(“page.aspx”) doesn't always work

在我的应用程序中,此代码:

CreditsSubjectsNamesTeacherCount n = new CreditsSubjectsNamesTeacherCount();
Session["UserID"] = n.GenerateTeacherCountCrossRegions(txtStartYear.Text.CheckOnEmptyYear(), ((UserInformation)Session["UserInformation"]).UserName);
Response.Redirect("page.aspx");


如果方法GenerateTeacherCountCrossRegions执行了很长时间(〜> 10分钟),则不会重定向。 什么会导致此问题?
PS:添加:
<httpRuntime executionTimeout="18000".. >但这没有帮助。
谢谢。

该请求已超时。 Response.Redirect发送HTTP响应,要求浏览器请求其他页面-如果该请求在浏览器中超时,则它将不接受此响应。

浏览器已停止等待页面,因此不再有连接。 服务器只是将重定向发送到没有人正在听的void中。

在单独的线程中开始工作,因此响应不必等待其完成。 重定向到偶尔重新加载以检查工作状态的页面,并在工作完成后重定向到最终页面。

要与后台线程通信,您需要一个两个线程都引用的对象。 您可以将对对象的引用存储在会话变量中,以便检查状态的页面可以访问它。

该请求将超时,因此浏览器将显示错误而不是预期的页面。 请注意,这仅在部署时可能不会在调试时发生。

对于此类长时间运行的操作,请考虑使用其他接口。

我创建了一个系统,在该系统中,计算出的分析数据在计算时会通过电子邮件发送给用户:在内部,我派生了BackgroundWorker线程来进行计算,然后使用MailMessage将报告作为PDF附件发送。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM