我正在开发一个 TFS 实用程序,用于获取 TFS 中特定项目的变更集。我有一个主要用于测试的家用 TFS 2010 服务器,但我决定尝试对我贡献的一个 codeplex 项目进行尝试。这样,我可以针对比本地更多的变更集测试功能。
虽然它在我的环境中运行良好,但通过电线连接到 codeplex 让我感到困惑。我的应用程序查询历史记录,但是,当尝试遍历历史记录时(即延迟加载 IEnumerable 时),我的应用程序挂起。
查看 Intellitrace,我看到了几个“第一次机会”异常,即“指定版本中不存在该项目”——这显然不是真的,因为我试图在 VersionSpec 获取“$/”的历史记录。最新的。
在强制调试暂停后,我还看到两个或三个连续的服务器 500 错误返回给我。
其他操作(如GetItems()
)工作正常,所以我很确定身份验证不是问题。
有什么想法吗?
这是代码:
IEnumerable items = vcs.QueryHistory("$/", VersionSpec.Latest, 1, RecursionType.None, null, null, null, 5, true, false);
List<ChangesetItem> returnList = new List<ChangesetItem>();
foreach (Changeset cs in items) //hangs here on first iteraiton
{
ChangesetItem newItem = new ChangesetItem()
{
ChangesetId = cs.ChangesetId,
//ChangesetNote = cs.CheckinNote.Values[0].Value,
Comment = cs.Comment,
Committer = cs.Committer,
CreationDate = cs.CreationDate
};
returnList.Add(newItem);
}