In my current and previous lives, one of the problems I get involved in is when people can’t connect to Team Foundation Server for some reason.
Usually the following occurs:
- “It was working yesterday but not today”
- “I haven’t changed anything”
- “Team Foundation Server tfsserver does not exist or is not accessible at this time.”
- I get an error message: TF31002: Unable to connect to this Team Foundation Server
The very first thing I do is confirm that it works for a known-good configuration – usually my workstation.
Providing that works and the server appears to be functioning, the next thing I do is ask the user to call the CheckAuthentication web service using Internet Explorer.
The URL for this is: http://TFSSERVER:8080/services/v1.0/ServerStatus.asmx?op=CheckAuthentication
By doing this check, I am doing four things:
- Eliminating Team Explorer from the picture
- Eliminating the .NET networking stack from the picture
- Ensuring that Windows Authentication is working correctly (that’s why I say IE)
- Ensuring that proxy settings are set correctly
In most cases I’ve seen, the TFS connection issues are because the proxy settings have changed or are incorrect. Because .NET and Visual Studio use the proxy settings from Internet Explorer, it’s important to have them set correctly.
In rare cases it’s beyond this. That’s when I start looking at things like:
- Can I resolve the server name?
- Can I connect using the IP address? Are there HOSTS file entries? (see: c:\windows\system32\drivers\etc\hosts)
- Can I ping the server?
- Can I telnet to port 8080?
After that I get stuck 🙂 Enjoy your troubleshooting!
Update – I forgot these ones:
- Does the user actually have access?
- Run TfsSecurity.exe /server:servername /im n:DOMAIN\User to check their group memberships
- Has the user changed their domain password lately?
- In some cases they’ll need to logoff the workstation and log back on again to get a new security token.
- Is the computer’s domain certificate valid?
- Running this command from the command prompt will update the certificate: gpupdate /force