首頁 >後端開發 >C++ >為什麼一個共用會話 Web 應用程式中的大檔案上傳會阻止另一個共用會話 Web 應用程式?

為什麼一個共用會話 Web 應用程式中的大檔案上傳會阻止另一個共用會話 Web 應用程式?

Barbara Streisand
Barbara Streisand原創
2025-01-13 19:56:47736瀏覽

Why Does Large File Upload in One Shared-Session Web Application Block Another?

Web 應用程式中的共享會話鎖定:案例研究

兩個部署於 IIS 的 Web 應用程式 /HRMS 和 /TravelDesk,利用 AspState 進行共用會話管理,讓使用者在它們之間無縫轉換。 然而,當使用者在 /TravelDesk 中上傳大檔案時,會出現嚴重的效能瓶頸; /HRMS 在此過程中變得無回應。

根本原因:會話鎖定

問題源自於共享會話的行為。 /TravelDesk 中的大檔案上傳會將使用者的會話資料鎖定在 SQL Server 資料庫中。此鎖定會阻止 /HRMS 的並發訪問,導致應用程式凍結。

解決方案:上傳期間停用會話鎖定

最直接的解決方案是在 /TravelDesk 中的檔案上傳過程中專門停用會話鎖定。 這可以透過在負責上傳的頁面指令或處理程序中設定 EnableSessionState="false" 來實現。

替代解決方案:超越共享會話

為了提高可擴展性並完全消除會話鎖定,請考慮共享會話管理的以下替代方案:

  • 以資料庫為中心的會話管理:將會話資料儲存從 AspState 遷移到專用資料庫表。這種方法提供了增強的可擴展性,並避免了共享會話中固有的鎖定衝突。

透過實作會話來停用技術或遷移到資料庫驅動的會話方法,即使在大文件上傳期間,也可以恢復 /HRMS 和 /TravelDesk 之間的無縫導航。

以上是為什麼一個共用會話 Web 應用程式中的大檔案上傳會阻止另一個共用會話 Web 應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn