Web 應用程式中的共享會話鎖定:案例研究
兩個部署於 IIS 的 Web 應用程式 /HRMS 和 /TravelDesk,利用 AspState 進行共用會話管理,讓使用者在它們之間無縫轉換。 然而,當使用者在 /TravelDesk 中上傳大檔案時,會出現嚴重的效能瓶頸; /HRMS 在此過程中變得無回應。
根本原因:會話鎖定
問題源自於共享會話的行為。 /TravelDesk 中的大檔案上傳會將使用者的會話資料鎖定在 SQL Server 資料庫中。此鎖定會阻止 /HRMS 的並發訪問,導致應用程式凍結。
解決方案:上傳期間停用會話鎖定
最直接的解決方案是在 /TravelDesk 中的檔案上傳過程中專門停用會話鎖定。 這可以透過在負責上傳的頁面指令或處理程序中設定 EnableSessionState="false"
來實現。
替代解決方案:超越共享會話
為了提高可擴展性並完全消除會話鎖定,請考慮共享會話管理的以下替代方案:
透過實作會話來停用技術或遷移到資料庫驅動的會話方法,即使在大文件上傳期間,也可以恢復 /HRMS 和 /TravelDesk 之間的無縫導航。
以上是為什麼一個共用會話 Web 應用程式中的大檔案上傳會阻止另一個共用會話 Web 應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!