TFS2008迭代腐败 – 错误TF51209

我们最近将我们的Team System安装从一个虚拟机移到了一台物理服务器上。 大多数方面似乎工作正常(工作项目,源代码pipe理等),但每小时在事件日志中看到以下错误(可能是当仓库正在更新)

事件types:错误
事件来源:TFS仓库
事件类别:无
事件ID:3000
date:03/06/2009
时间:12:26:32
用户:N / A
计算机:TFS1
描述:
TF53010:Team Foundation组件或扩展中发生以下错误:
date(UTC):03/06/2009 11:26:32
机器:TFS1
应用领域:/ LM / W3SVC / 1724018147 / Root / Warehouse-3-128884367959382827
程序集:Microsoft.TeamFoundation.Warehouse,版本= 9.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a; V2.0.50727
工艺细节:
进程名称:w3wp
进程ID:5080
线程ID:6016
帐户名称:NTSERVERS \ sqlservice

详细消息:TF51209:运行时错误System.Collections.Generic.KeyNotFoundException:给定的键不存在于字典中。
在System.ThrowHelper.ThrowKeyNotFoundException()
在System.Collections.Generic.Dictionary`2.get_Item(TKey键)
在Microsoft.TeamFoundation.WorkItemTracking.Adapter.Adapter.FindTreeNodeUriFromId(对象id,Int32 treeStructureType)
在Microsoft.TeamFoundation.WorkItemTracking.Adapter.Adapter.AddWorkItemFactEntry(PayloadRow dr,String projectUri,String previousState,DateTime dtChangedDate)上的Microsoft.TeamFoundation.WorkItemTracking.Adapter.Adapter.ProcessKeywordValue(FactEntry事实上,PayloadRow fieldRow,PayloadRow dr)
在Microsoft.TeamFoundation.WorkItemTracking.Adapter.Adapter.PopulateFacts(PayloadRow dr)
在Microsoft.TeamFoundation.WorkItemTracking.Adapter.Adapter.MakeDataChanges()
在Microsoft.TeamFoundation.Warehouse.AdapterWrapper.RunTimerAdapter()发生在适配器Microsoft.TeamFoundation.WorkItemTracking.Adapter.Adapter。

有关更多信息,请参阅http://go.microsoft.com/fwlink/events.asp上的帮助和支持中心。

我们在一夜之间重新应用了TFS 2008 SP1来纠正一个不同的问题(迭代没有出现在工作项迭代列表中)。 我们注意到两个不同项目的迭代已经消失了,尽pipe我们能够跟踪工作项目(迭代项目是空白的)。 我想我们可能会遇到仓库迭代以某种方式被破坏的问题?

帮助赞赏…

编辑09/06/2009:一些更多的信息,以防止它的帮助。 在TFS服务器上进行一些维护工作时,我们的系统团队损失了三周的TFS数据。 他们在做这个工作之前所做的数据库备份“已经丢失”了,我们不得不恢复到3个星期的时间。 这似乎是错误源于仓库重build后,我可以看到指标之前,这个事件之前没有。 是的,我们的TFS服务器现在有金牌状态,并且所有必要的备份都已经到位了:)

您是否尝试过使用SetupWarehouse命令重build仓库数据库(包括关系型和OLAP):

http://msdn.microsoft.com/en-us/library/ms400783.aspx

支持TFS的SQL Server数据库中可能有损坏。 你有一个DBA或有专业知识的SQL Server的人可以在数据库上运行DBCC CHECKDB吗?

这确实是在TFSWarehouse表中被破坏的迭代。 我们支付MS支持,他们提供了一个自定义脚本来纠正这个问题(基本上重新映射了损坏迭代中的工作项目)