本地部署Azure DevOps Dev18.M170.6编辑保存无响应问题咨询
问题诱发原因
- 同域标签页会话锁冲突:你使用的
Dev18.M170.6版本对应Azure DevOps Server 2020 Update 1的早期分支,该版本前端存在未修复的会话状态同步缺陷:多标签页同时挂载时,共用同一个本地会话的读写锁,第一个标签页提交工作项修改后,会无限等待其他标签页释放锁权限,无超时 fallback 逻辑,因此会一直显示加载动画,直到其他标签页关闭、连接断开后锁才会释放。 - LocalStorage状态同步阻塞:该版本会将用户的工作项编辑草稿、导航状态等数据存储在同域共享的LocalStorage中,多标签页同时运行时会频繁触发storage事件的读写争抢,保存操作的回调需等待所有storage写入完成才会执行,未配置争抢熔断机制,因此会出现无报错的假死状态。
- 告警阈值未触发:你的活跃用户规模仅30人,单用户多标签页产生的重复会话连接未达到服务端默认的连接数告警阈值,因此服务端日志无相关告警记录。
修复与规避措施
- 版本补丁升级:直接升级到Azure DevOps Server 2020 Update 1.2正式补丁包,该补丁已明确修复多标签页会话锁冲突问题,无需改动现有业务配置。
- 临时配置调整:若暂时无法完成版本升级,可以在站点的
web.config中添加自定义响应头Set-Cookie: VSS_SessionLocks=disabled; path=/; HttpOnly,关闭前端的会话锁强校验逻辑,该配置不会影响现有功能的正常运行,仅会弱化多标签页状态同步的强校验规则。 - 用户侧临时规避方案:可告知用户暂时通过浏览器多用户Profile、无痕模式打开多个Azure DevOps页面,避免同一会话下的多标签页冲突。
- 告警规则优化:将服务端单用户会话连接数的告警阈值从默认的10/用户调整为3/用户,后续出现同类问题可快速定位异常来源。
内容的提问来源于stack exchange,提问作者spikey_richie
相关产品推荐
相关产品推荐

