Web 应用程序中的共享会话锁定:案例研究
两个部署于 IIS 的 Web 应用程序 /HRMS 和 /TravelDesk,利用 AspState 进行共享会话管理,允许用户在它们之间无缝转换。 然而,当用户在 /TravelDesk 中上传大文件时,会出现严重的性能瓶颈; /HRMS 在此过程中变得无响应。
根本原因:会话锁定
问题源于共享会话的行为。 /TravelDesk 中的大文件上传会将用户的会话数据锁定在 SQL Server 数据库中。此锁会阻止 /HRMS 的并发访问,从而导致应用程序冻结。
解决方案:在上传期间禁用会话锁定
最简单的解决方案是在 /TravelDesk 中的文件上传过程中专门禁用会话锁定。 这可以通过在负责上传的页面指令或处理程序中设置 EnableSessionState="false"
来实现。
替代解决方案:超越共享会话
为了提高可扩展性并完全消除会话锁定,请考虑共享会话管理的以下替代方案:
通过实施会话禁用技术或迁移到数据库驱动的会话方法,即使在大文件上传期间,也可以恢复 /HRMS 和 /TravelDesk 之间的无缝导航。
以上是为什么一个共享会话 Web 应用程序中的大文件上传会阻止另一个共享会话 Web 应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!