Visual Studio 2010的推出一举带来很多革命性的改变,TFS即是一个改变,在Visual Studio 2010中集合了源代码管理,项目管理,测试管理等一体工具,不再需要之前的VSS,NUnit测试等,目前也一直在用TFS感觉方便快捷,可就在昨天TFS罢工了,通过Visual Studio 2010怎么也连接不到TFS服务器,代码同步受阻,不过几经折腾最后还是解决了,现将过程分享给大家:
在某个时段,要修改代码,签出文件时,提示连接服务器失败,自动的想到是不是TFS密码过期了,因为服务器端设置要求开发人员定期修改TFS密码,于是登录服务器去修改密码,可是登录后发现不是这个问题,密码没有到期呀。那奇怪什么原因呢?再次尝试仍提示TF31001错误,未被授权。按照提示理论上说是不是服务器关闭了你访问当前代码的权限,可是经查看服务器权限配置很对呀,很奇怪。
遇到此类问题,大家习惯性的操作,重启Visual Studio 2010吧,结果还是没效果。干脆重启计算机,折腾了几分钟,仍旧不变的错误。
之后惯性的Google一下吧,与之相关的内容不多,在几篇E文的资源中,也看到一些有意的东西,大致说明如下几点
1、服务器端确保有效可用,权限配置正确无误
2、当前计算机在可用的域空间内
3、相关端口,防火墙畅通访问
针对如上几点,使用我的帐号在其他机器上登录,TFS连接正常无误,但使用同事的帐号在我的机器上登录也提示同样的TF31001错误。问题锁定到自己机器上,回想从开始使用TFS到出现问题这段时间内,也没搞什么设置呀。之后又自己按照相关的资料操作一会,仍无果。
修复一下TFS吧,在Visual Studio 2010中,TFS是集成的,打开Visual Studio 2010安装包,也没发现相关的TFS组件,那就修复Visual Studio 2010吧,之后开启仍是同样的错误,崩溃加郁闷。
继续查资料,在E文的一个站点上,看到如下的内容:
This is very strange error and only happening if i change my local system date to future date. Actually if i change my local system date to like 2 weeks from now then every single time i click on any folder in source control through Visual Studio 2010;
修改本地时间,果真在调试自己项目时,我修改了自己本地的时间,当时就感觉问题要解决了,之后如愿修改时间为当前时间,一切Ok,顺利解决。这让我在想TFS和本地时间到底有啥关系,其实经分析发现,在代码进行同步更新维护时,TFS回和服务器端进行一些常用信息的校对,如时间,依保证代码的安全有效。
暖宝宝是什么?