Team Foundation Server Beta3(TFS)中关于连接和用户验证的bug以及解决方案(TFS高手进)
最近一个项目,XP操作系统中使用VS2005连接Team Foundation Server进行源码管理和控制。我在使用当中碰到了一个严重问题,和大家分享经历,希望能帮助有同样问题的朋友,更希望有高手能给出更好的解决方案,大家交流一下。
问题描述:
我用的是TFS客户端,要连接服务器端,获取源码。
1. 打开tool菜单,选择Connect to Team Foundation Server….
2. 然后按照提示输入服务器地址和你要选择的项目。
3. 问题就在这里,这时候会出现用户登陆验证框,要求你输入用户名和密码,如图,当你选择保存用户名和密码后,你会发现你将再也无法修改这个用户名和密码,由于我当初是使用别人的帐号登陆的,现在要改回自己的帐号实在费了一番心血。(强烈建议,千万别记住用户名和密码!!!!!)
从微软论坛上找到的资料
1、
Q:Can not disconnect from TFS Server in explorer window
Was this post helpful ?
When i started a connection (Studio 2005) the first time after the upgrade to TFS Beta 3 Refresh no login was prompted when connected to the FTS server. I was loged on as administrator.
I can not find a way to disconnect from the server and login as another user (myself). When I disconnect I receive an error saying
“Value can not be null.
Parameter name : uriString”
A1:
Thomas, this bug has been logged and fixed in RTM. You can try "Devenv /resetuserdata" that would reset VS and then start connecting to the server again. I will also check to see if there are other workarounds.
A2:
I did that!
I have uninstall VS2005 + install VS2005
I ran "devenv /resetuserdata" and the the VS2005 started as first time (as it should).
When I connected to TFServer I had to re-add the TFserver again.
Everything went just fine but no login popup and the connection to TFS is once again as administrator!
Please let me know how to switch to my normal login!
I've got a solution for users running XP.
Edit USer Accounts -> Advance -> Manage Passwords and remove the TFServer server/password!
Login again and you will be pronpted for user & password!
Best Regards,
Thomas
Studio will start as for the first time but no login is prompted and I am the same user as before and can access TFS.
Any suggestions how to reset this?
分析:
从上面的回答可以发现,有人重装了VS2005都没用,那就是说这个用户名和密码是存储在XP系统中的,而且也提到了无法断开连接这个目前知名的bug。
上面回答的人给出了一个解决方案,说是从user accounts进入,删除掉那个密码。在Xp我没找到如何通过控制面板进入的方法,只有从开始运行输入
rundll32 netplwiz.dll,UsersRunDll,打开用户管理界面,如图。但是显然在其中并没有A2所说的TFServer server/password,只能对此种方案表示放弃(谁知道的告诉我阿)
2、
Q:
Clean client cache - Want to login with a different user
Was this post helpful ?
On client side, when opening VS it automatically logs in to team foundation server with the user I provided the first time. How do I connect with another user. The dialog does not display. I have tried Internet Explorer->Internet Options->Security to prompt every time, but with no success.
I have also tried devenv.exe /resetuserdata
A1:
In Visual Studio SDK there is a Visual Studio Team System Integration part which in the subfolder named "Utilities" hides three useful utilities. One of these utilities called "CleanCreds.exe" should do the trick. Here is a part of the readme.txt file for the utility:
CleanCreds.exe
--------------
This tool is used to delete stored credentials for Team Foundation Server connections. It applies to the following scenario:
1). From the Team Explorer, connect to a Team Foundation Server for which the running account does not have permissions.
2.) When prompted for alternate credentials, enter in alternate login and password and check the "Remember my password" checkbox
3). Confirm the alternate credentials and login to the server
4. Any future connection to that Team Foundation Server from this machine using the running account will use the alternate credentials. There is no easy way to delete the stored alternate credentials.
This scenario is problematic in environments where the Team Explorer client machine is shared and alternate credentials are used frequently.
Clearing Credentials
To delete the stored credentials, use the CleanCreds.exe utility as follows.
1). Ensure that you have logged in to the client machine using the original running account
2.) Copy the CleanCreds.exe to the client machine
3). From the command prompt, run:
CleanCreds <Team Foundation Server URL>
The URL usually looks as follows:
http://TFS:8080/
This will delete the alternate credentials stored for the running account for connecting to the specified Team Foundation Server.
A2:
You should also be able to do this by executing some command with the tf.exe command line. The command-line supports a /login option where you can specify a user name. That will pull up the credentials dialog and allow you to save new credentials.
分析:
在这个解决方案中,提到了使用CleanCreds.exe这个程序,可以清除密码,本来我以为事情就这么顺利解决了,可是没想到无论从google或者baidu或者自己的电脑中,都无法找到关于CleanCreds.exe这个程序的任何相关资料,我也尝试到MSDN中去搜索,依然是一无所获,后来我尝试查找A2中的tf.exe,首先这个程序能从VS2005中轻松找到,是个命令行程序,用DOS打开,键入tf.exe -?后会自动打开MSDN中相关内容,看了后就是没找到A2中提到的/login参数,何解?放弃该方案。
最终解决方案:
以上解决方案最终都没成功,最后是我一个同事问到了微软的人才最后解决的,说解决其实不恰当,其实是绕过了这个问题。
不要双击,Visuao Studio 2005的快捷方式。用鼠标点右键!选择运行方式
出现如下图,换一种系统帐户登陆(如没有,需要新建一个用户),确定!
重新设置TFS,用你想要登陆的用户名登陆!!
这就等于是换了个用户使用,这种方法带来的问题是,下次直接使用项目登陆是不能默认登陆为更改后的帐户的,必须每次都右键通过运行方式改变用户登陆,再打开需要编辑的解决方案,非常麻烦。但是能够暂时解决问题。