簡體   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