今天,我突然发现,我无法在TFS上成功完成任何类型的get命令。过程只是在某个时刻挂起,进度条和状态消息与当前处理的文件永远保持不变,没有错误抛出。这种情况每次都发生在不同的文件上,迟早会进入IDE和命令行实用程序。
我正在使用Visual Studio Premium 2012和TFS 2008。
我以前从来没有遇到类似的问题,昨天一切正常。从那时起,我不知道任何配置更改,我是公司中唯一遇到此问题的人。
我不认为对于为什么会发生这种情况有直接的答案,但有人可以提供有关如何调试和解决此类问题的任何指示吗?
到目前为止,我已经尝试了各种运行get命令的方法 - 最新版本,特定版本,map + get latest,在VS IDE和命令行中。许多其他TFS命令似乎也运行良好。
编辑:
经过一些试验和错误,让这个过程持续了一个小时左右,我终于偶然发现了源控制输出窗口中的错误消息。这些在最初是不可见的,因为当进程挂起时,它使整个IDE无响应。消息都是一样的:
[文件路径]:TF400307:等待599秒后,服务器响应,下载操作超时。
我在TFS遇到了同样的问题,它会挂起并变得无法响应。
我通过使用以下配置值更新tf.exe.config或devenv.exe.config文件找到了解决方案:
<system.net>
<connectionManagement>
<add address="*" maxconnection="1000"/>
</connectionManagement>
</system.net>
我将限制设置为1000,因为我仔细观察了资源监视器中的值,但实际上我没有超过600个并发连接。
那么会发生什么呢?VS 2012中的TFS客户端有一个错误,导致它在运行get命令后的一段时间后开始计时所有文件的时间 大 文件数量。
如下面的MS Connect票证中所述,现在的解决方法是使用旧的TFS客户端来运行超时命令。我成功地使用VS 2010命令行TFS客户端来执行项目。
从TFS 2008获得VS 2012的最新版本面临同样的问题。使用调试器和Fiddler工具,我能够抓住VS挂起的那一刻。当VS 2012收到一些压缩的TFS服务器HTTP响应时看起来有些问题,它无法解压缩并挂起。关闭TFS HTTP流量压缩后,VS不再挂起。希望它可以帮助别人。
要关闭TFS压缩,请创建注册表值并重新启动VS:
HKEY_CURRENT_USER \软件\微软\ VisualStudio的\ 11.0 \ TeamFoundation \ RequestSettings
EnableCompression(REG_SZ)=”假”
我遇到了类似的问题。改变工作区为我工作,即我删除了旧工作区并创建了一个新的工作区,我再次映射了所需的项目,它就像一个魅力!
同样在这里,你很耐心!我还得到了一个“TF400324:服务器xyz无法提供Team Foundation服务。技术信息(针对管理员):操作超时后”我取消了获取最新流程并等待了很长时间后来自Source Control Explorer的错误。
它可能不是文件的数量,而是数据量?在传输大约2GB数据后,它就会挂起,这正是32位有符号整数溢出的时候,但这只是一种怀疑。
票: https://connect.microsoft.com/VisualStudio/feedback/details/776506/source-control-explorer-getlatest-hangs-after-certain-amount-of-data-transferred-might-be-integer-overflow#tabs
我注意到当我使用新的WorkFolders映射作为参数调用CreateWorkspace方法时,它开始将所有文件(映射到$ /)拉到本地,这将解释长处理时间 - 对于WorkFolders而言改为CreateWorkspace为null而不是下一步添加似乎做的伎俩