我有一個asp.net網頁,其中按鈕點擊事件過程運行35分鐘,在前端我使用ajax並顯示進度條圖像。如果進程(按鈕點擊事件)在30分鐘內完成,則頁面重新加載成功,否則「進行中」圖像即使在處理完成後仍持續顯示,直到AsyncPostBackTimeout
(設置爲60分鐘),並顯示服務器60分鐘後超時問題。 請讓我知道是否有什麼我做錯了。30分鐘後asp.net頁面沒有響應
0
A
回答
2
沒有看到你的代碼,我不能告訴你發生了什麼問題。不過,我可以推薦幾個選項:
- 出把任務到多個步驟(而不是一個長鏈的任務)。對用戶來說可能會多一點工作,但至少他們不會在頁面上懸掛半小時+(哎喲!)。
- 使用一個分析器來查看實際上需要這麼長時間,看看你是否不能優化代碼來減少進程。例如,如果是數據庫調用,那麼創建一個存儲過程而不是多個選擇/更新(數據來回執行)可能是有意義的 - 保留機器上的處理直到需要最終結果。
- 對於長期任務,將流程分解爲服務或單獨的實體(並且只是將服務報告返回進度)可能是有意義的。例如MSMQ是一個非常好的方式,可以讓專門的服務運行並在需要時將任務傳遞給它。請記住,這現在創建了另一個層,這是另一個需要維護的地方。
0
如果一個過程需要30分鐘,明天可能需要60分鐘或更長時間,只是因爲您的服務器將忙於其他事情。這種做法從根本上說是錯誤的。
我的建議是將這麼長的任務放到另一個層面上,一個系統服務。該服務運行,從隊列中挑選任務,逐個執行。前幾層每隔幾秒鐘查看操作是否完成。或者更好的是,用戶不會等待,他們會做其他事情,並最終以某種方式告知他們長時間運行的任務已完成。
相關問題
- 1. 程序在30分鐘後沒有響應
- 2. Android 2.2應用程序:30分鐘後沒有GPS信號。 30分鐘後再次無效
- 3. 30分鐘後緩存頁面加載和刪除?
- 4. 增加30分鐘到$,以便30分鐘後人們不再可以在PHP中查看頁面
- 5. 硒在沒有響應的頁面上沒有響應
- 6. 緩存asp.net頁面響應
- 7. 頁方法沒有響應在asp.net
- 8. 每隔一小時在(00分鐘)和30分鐘內重新加載頁面
- 9. 減去30分鐘
- 10. ASP.NET核心網站在30分鐘後超時
- 11. 記錄桌面節省每30分鐘
- 12. 每30分鐘後彈簧cron表達
- 13. 30-40分鐘後Chrome崩潰
- 14. ASP.Net主頁面沒有響應Site.css更改
- 15. mynodejs登錄頁面沒有響應
- 16. 沒有從jsp頁面得到響應
- 17. 我的Html頁面沒有響應
- 18. 增加30分鐘時間使其回去30分鐘
- 19. 每30分鐘獲取一個遠程頁面源碼
- 20. cron/wget - 每5小時30分鐘運行一次頁面
- 21. WordPress的延遲長達2分鐘的頁面響應時間
- 22. 語義ui分頁沒有響應
- 23. asp.net web應用程序在大約15分鐘後進入登錄頁面
- 24. 與按repeatInterval每30分鐘有問題
- 25. 30分鐘錯誤在1900年只有
- 26. -30分鐘加入日期
- 27. 批的Windows:30分鐘
- 28. C#通過每30分鐘
- 29. 10分鐘後動作ASP.NET
- 30. 硒提交按鈕1分鐘後點擊服務器沒有響應
35分鐘到底做了什麼?我期望ASP.NET事件處理程序不是執行這種長時間運行代碼的合適位置。 –
你正在做你的服務器端代碼錯誤。沒有網絡請求應該等待三十五分鐘。把你的工作分成幾個塊,或者使用[comet](http://en.wikipedia.org/wiki/Comet_%28programming%29)或類似的東西。 –
你的過程本身需要30分鐘是錯誤的。你認爲用戶會在你的頁面上等待這麼久嗎? – Ehsan