在积压的TFS中,您可以通过根据所需顺序选择和拖动项目来重新排序工作项。 当我们尝试使用最近的TFS 2015安装时,会弹出以下错误: 其中说:
尝试保存更改时发生错误。点击 这里放弃您的更改并刷新您的待办事项视图。 错误详细信息:TF400486:无法完成操作,因为您 或者其他用户已经修改,删除或重新替换了物品,或者您 正在尝试重新排序其直接父母之外的项目。
当我们检查TFS机器上的事件日志时,会出现此异常:
Microsoft.TeamFoundation.Server.WebAccess.Agile.Models.BacklogChangedException: TF400486:无法完成操作,因为您或其他用户 修改,删除或重新设置了物品,或者您正在尝试 重新排序其直接父级之外的项目。在 Microsoft.TeamFoundation.Server.WebAccess.Agile.Utility.ProductBacklogReorderHelper.PerformReorder(ReorderOperation operation,WorkItemData previousItem,WorkItemData nextItem, WorkItemData reorderItem,List
1 workItemsData) at Microsoft.TeamFoundation.Server.WebAccess.Agile.Utility.ProductBacklogReorderHelper.Reorder(ReorderOperation reorderOperation) at Microsoft.TeamFoundation.Server.WebAccess.Agile.Utility.ProductBacklogReorderHelper.<Reorder>b__0(ReorderOperation o) at System.Linq.Enumerable.<SelectManyIterator>d__14
2.MoveNext()at System.Linq.Enumerable.d__811.MoveNext() at System.Collections.Generic.List
1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source)at at Microsoft.TeamFoundation.Server.WebAccess.Agile.Controllers.ApiReorderWorkItemsController.ReorderWorkItems(ReorderOperation [] operations,String hubCategoryRefName,String iterationPath)at lambda_method(Closure,ControllerBase,Object [])at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 参数)at System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass42.b__41() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass37&LT;&GT; c__DisplayClass39.b__33() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass4f.b__49() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker。&lt;&gt; c__DisplayClass37.b__36(IAsyncResult asyncResult)at at System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass25&LT;&GT; c__DisplayClass2a.b__20() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker&LT;&GT; c__DisplayClass25.b__22(IAsyncResult的 asyncResult)at System.Web.Mvc.Controller&LT;&GT; c__DisplayClass1d.b__18(IAsyncResult的 asyncResult)at System.Web.Mvc.Async.AsyncResultWrapper&LT;&GT; c__DisplayClass4.b__3(IAsyncResult的 ar)在System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)at System.Web.Mvc.Async.AsyncResultWrapper&LT;&GT; c__DisplayClass4.b__3(IAsyncResult的 ar)在System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) 在 System.Web.Mvc.MvcHandler&LT;&GT; c__DisplayClass8.b__3(IAsyncResult的 asyncResult)at System.Web.Mvc.Async.AsyncResultWrapper&LT;&GT; c__DisplayClass4.b__3(IAsyncResult的 ar)在System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult) asyncResult)at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤, 布尔和放大器; completedSynchronously)
我们应该采取哪些措施来解决这个问题?
答案 0 :(得分:0)
您可以尝试:
将TFS 2015升级至TFS 2015 Update 1.
清理AT计算机上的文件缓存文件夹:C:\ TfsData \ ApplicationTier_fileCache
重新启动IIS中的TFS应用程序池。
答案 1 :(得分:0)
事实证明,这与我们过去使用TFS与现在使用TFS的方式有关。 指南here表示工作项目的排序应在特征的上下文中完成 也就是说,按功能排序,然后在相关的Sprint积压中,按工作项目排序。
答案 2 :(得分:0)
我注意到这只发生在:
案例1:
我将带孩子的PBI移到另一个PBI或
之前案例2:
我移动PBI并将其放在带有孩子的PBI之后
我为每个案例使用的解决方法就是这个。
解决方法:强>
想象一下这是订单:
PBIWithChildren
PBINoChild
PBIINeedToMove
这是我想要达到的顺序:
PBIINeedToMove PBIWithChildren PBINoChild
我将PBIWithChildren
移了一下。所以顺序变成了这样:
PBINoChild
PBIWithChildren
PBIINeedToMove
然后我移动了PBIINeedToMove
并在PBINoChild
之前删除了它,所以顺序变成了这样:
PBIINeedToMove
PBINoChild
PBIWithChildren
然后我移动了PBIWithChildren
一个并以此结束这是我想要实现的目标:
PBIINeedToMove PBIWithChildren PBINoChild
我知道这听起来很多步骤,但只有当你需要写它时。否则,这是一个快速的解决方法。
答案 3 :(得分:0)
我刚刚遇到了这个问题并通过确保我的功能迭代路径位于分配给相应团队积压的同一迭代路径中来解决它。这可能并不适用于所有情况,但在进行更改后,我能够毫无错误地为他们的孩子重新排序我的功能。
答案 4 :(得分:0)
我们遇到了同样的问题。 在我们的例子中,错误是由团队积压中的功能和要求之间的意外链接引起的: 已经拥有父级的需求已成为不同功能的父级。因此,不再可能订购积压工作。
因此,为了解决这个问题,我们必须找到需求,该需求已成为不同功能的父级并删除此父/子链接。然后我们能够重新排序需求积压。
答案 5 :(得分:0)
这在故事级别的看板中的VSTS中仍在发生。通过将用户故事移至其他列,然后按所需顺序将其移回原始列,我能够解决此问题。烦人的,但似乎可行。
答案 6 :(得分:0)
只需添加到体验列表中,我就在TFS 2018.1。中碰到了这一点。
就我而言,这是在我们的一个团队重组了他们使用木板的方式之后,并对PBI上的区域和迭代路径进行了彻底的更改,而不是对任务进行了一些更改。
根本原因是,PBI下的某些(先前存在的)未完成(新的,正在进行的)任务与添加的新任务处于不同的迭代和区域中。确保所有未完成的任务都在同一区域路径/迭代中,即可解决此问题。
答案 7 :(得分:0)
就我而言,我有一个功能积压视图,这很令人讨厌。我发现我的用户故事是Bug的父辈,它们被设置为需求级别而不是任务级别(意味着它们是嵌套的)。修复错误/用户