我有一個運行在IIS上的ASP.NET MVC應用程序。我有以下處理程序/ DoWork(可以說需要10分鐘)和/ ReportStatus(可以說需要< 1秒)。 DoWork完成工作,而ReportStatus返回工作進度。長時間運行Ajax請求阻止短Ajax狀態更新
我想異步運行/ DoWork,通過運行Javascript上的$ .ajax請求,然後通過在window.setInterval中註冊的函數中封裝的異步$ .ajax反覆查詢/ ReportStatus來監視其進度。但是,我所看到的是,長時間運行的$ .ajax on/DoWork會阻止/ ReportStatus上的所有其他查詢,直到DoWork完成。
我如何繞過這個?我猜想這與IIS服務器設置可能拒絕來自一臺主機的兩個活動請求有關?有任何想法嗎?
我的第一個想法是讓/ DoWork在後臺異步線程中運行實際工作並立即返回。不過,我想知道是否有更好的選項,因爲我想在/ DoWork運行期間保持連接打開。
我想你想看看網絡套接字或網絡工作者,爲/ DoWork的 – colecmc