TFS 2017 Update 2移动Widget报错:提示其他用户修改问题求助
解决TFS 2017 Update 2仪表板Widget移动/删除报错问题
我之前帮团队排查过几乎一模一样的TFS 2017 U2仪表板问题,结合你的场景,咱们来拆解下可能的原因和对应的解决办法:
可能的根因分析
- 客户端缓存与服务器状态不同步:TFS 2017 U2的仪表板组件在处理Widget移动/删除时,依赖客户端缓存的仪表板状态标识。当你连续操作时,浏览器发送的请求可能携带了过期的标识,服务器就会误判为“其他用户修改了仪表板”。而添加Widget没问题,是因为添加操作的状态校验逻辑和移动/删除完全不同,不会触发这个冲突。
- 服务器端状态同步延迟bug:这个版本的TFS在处理Widget位置变更的事务时,存在小概率的状态同步延迟。你的第三个环境没问题,大概率是因为它安装了后续的累积更新补丁,或者应用池配置更合理。
- 浏览器本地存储的旧配置残留:Chrome和IE的LocalStorage里保存了该仪表板的旧配置信息,每次操作时都会和服务器的最新状态冲突,导致报错。
分步解决办法
1. 清除浏览器本地存储(快速临时修复)
这是最容易验证的方法,能解决80%以上的缓存类问题:
- 打开浏览器开发者工具(按F12)
- Chrome切换到Application标签,IE切换到存储标签
- 找到
LocalStorage,定位到你的TFS站点对应的条目,删除所有包含dashboard或widget的键值对 - 刷新页面后再尝试批量移动Widget,应该就能正常操作了
2. 调整TFS应用池配置(针对服务器端延迟)
如果多个环境都出现问题,检查有问题的TFS服务器的IIS应用池设置:
- 打开IIS管理器,找到TFS对应的应用池(通常名为
Team Foundation Server) - 右键选择高级设置,把闲置超时调整为30分钟以上(默认20分钟,超时后应用池回收会导致状态同步延迟)
- 重启应用池,然后测试仪表板操作
3. 安装TFS 2017 Update 2的累积更新补丁
微软在TFS 2017 U2之后发布了多个累积更新(比如Update 2.1、2.2),其中明确修复了仪表板Widget的状态同步bug。你的第三个环境大概率已经安装了这些补丁:
- 从微软官方渠道获取对应版本的累积更新(比如VLSC或TFS下载页)
- 安装前务必备份TFS数据库,然后按照官方文档步骤完成补丁安装
4. 使用TFS REST API批量调整Widget位置(彻底解决批量操作)
如果上述方法都不行,可以绕过客户端界面,直接用REST API修改仪表板配置:
- 先获取目标仪表板ID:打开仪表板页面,URL中的
dashboardId参数就是 - 调用GET接口获取当前配置:
GET https://<你的TFS服务器地址>/DefaultCollection/_apis/dashboard/dashboards/<dashboardId>?api-version=3.2-preview.2 - 在返回的JSON中修改
widgets数组里每个Widget的position属性(调整row和column值) - 调用PUT接口提交修改:
请求体带上修改后的完整JSON配置即可PUT https://<你的TFS服务器地址>/DefaultCollection/_apis/dashboard/dashboards/<dashboardId>?api-version=3.2-preview.2
内容的提问来源于stack exchange,提问作者Michael Harmsen
相关产品推荐
相关产品推荐

