We encountered an issue when we set up a TFS warm by stand by tier on a window server 2008 machine at a client site.
The set up of TFS application tier “warm stand by” went well. The steps to set it up are in the section “How to: Configure a Standby Server for the Application Tier in the TFS installation guide” of the Team Foundation Server 2008 installation guide.
Once we ran the activateAT command to specify the virtual server name we had selected, TFS returned many errors (TF30063; see below for a sample of the event log)Log Name: Application
Source: TFS Version Control
Date: 5/28/2009 2:30:46 PM
Event ID: 3028
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: ATMachineName.DomainName.net
Description:
TF53010: The following error has occurred <span style="color: #0000ff">in</span> a Team Foundation component or extension:
Date (UTC): 5/28/2009 6:30:46 PM
Machine: ATMachineName
Application Domain: /LM/W3SVC/831865381/ROOT/VersionControl-40-128880090463851400
Assembly: Microsoft.TeamFoundation.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Process Details:
Process Name: w3wp
Process Id: 3828
Thread Id: 3624
Account name: DomainName\tfsservice
 
Detailed Message: TF53002: Unable to obtain registration data <span style="color: #0000ff">for</span> application VersionControl.
Web Request Details
Url: http:<span style="color: #008000">//VirtualATName:8080/VersionControl/v1.0/repository.asmx [method: POST]</span>
User Agent: Team Foundation (devenv.exe, 9.0.30729.1)
Headers: Content-Length=319&Content-Type=application%2fsoap%2bxml%3b+charset%3dutf-8&Accept-Encoding=gzip%2cgzip%2cgzip&Accept-Language=en-US&Authorization=NTLM+TlRMTVNTUAADAAAAGAAYAH4AAAAYABgAlgAAAA4ADgBIAAAAEgASAFYAAAAWABYAaAAAABAAEACuAAAANYKI4gUBKAoAAAAPRQBaAEUAUwBPAEYAVABKAEsAbwB0AGEAcgBzAGsAaQBLAE8AVABBAFIAQwBBAFMAVABMAEUAvLisuuzUv6kAAAAAAAAAAAAAAAAAAAAAVjEA56O20yN8mf9I854%2bj5Uv5P6dgzJHKyiKXw6Frzq0%2bHPGhl1UwA%3d%3d&Expect=100-<span style="color: #0000ff">continue</span>&Host=VirtualATName%3a8080&User-Agent=Team+Foundation+(devenv.exe%2c+9.0.30729.1)&X-TFS-Version=1.0.0.0&X-TFS-Session=e998d615-a149-43cf-96ca-c9bd3577c1a2
Path: /VersionControl/v1.0/repository.asmx
Local Request: False
Host Address: 10.3.2.25
User: DomainName\UserName[authentication type: NTLM]
 
Exception Message: TF30063: You are not authorized to access VirtualATName. (type TeamFoundationServerUnauthorizedException)
 
Exception Stack Trace: at Microsoft.TeamFoundation.Client.TeamFoundationSoapProxy.ThrowIfUnauthorized(HttpWebResponse response)
at Microsoft.TeamFoundation.Client.TeamFoundationSoapProxy.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Microsoft.TeamFoundation.Proxy.BisRegistrationServiceProxyWsdl.GetRegistrationEntries(String toolId)
at Microsoft.TeamFoundation.Proxy.BisRegistrationProxy.GetRegistrationEntries(String toolId)
at Microsoft.TeamFoundation.Proxy.BisRegistrationService.RefreshMemoryCache()
at Microsoft.TeamFoundation.Proxy.BisRegistrationService.RefreshCachesIfNeeded(Boolean direct)
at Microsoft.TeamFoundation.Proxy.BisRegistrationService.GetRegistrationEntries(String toolId)
at Microsoft.TeamFoundation.Server.TeamFoundationApplication.GetRegistrationEntry(String toolName)
at Microsoft.TeamFoundation.Server.TeamFoundationApplication.GetDatabaseConnectionString(String toolName, String dbName)
 
 
Event Xml:
<Event xmlns=<span style="color: #006080">"http://schemas.microsoft.com/win/2004/08/events/event"</span>>
<System>
<Provider Name=<span style="color: #006080">"TFS Version Control"</span> />
<EventID Qualifiers=<span style="color: #006080">"0"</span>>3028</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime=<span style="color: #006080">"2009-05-28T18:30:46.000Z"</span> />
<EventRecordID>9074</EventRecordID>
<Channel>Application</Channel>
<Computer>ATMachineName.DomainName.net</Computer>
<Security />
</System>
<EventData>
<Data>TF53010: The following error has occurred <span style="color: #0000ff">in</span> a Team Foundation component or extension:
Date (UTC): 5/28/2009 6:30:46 PM
Machine: ATMachineName
Application Domain: /LM/W3SVC/831865381/ROOT/VersionControl-40-128880090463851400
Assembly: Microsoft.TeamFoundation.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Process Details:
Process Name: w3wp
Process Id: 3828
Thread Id: 3624
Account name: DomainName\tfsservice
 
Detailed Message: TF53002: Unable to obtain registration data <span style="color: #0000ff">for</span> application VersionControl.
Web Request Details
Url: http:<span style="color: #008000">//VirtualATName:8080/VersionControl/v1.0/repository.asmx [method: POST]</span>
User Agent: Team Foundation (devenv.exe, 9.0.30729.1)
Headers: Content-Length=319&amp;Content-Type=application%2fsoap%2bxml%3b+charset%3dutf-8&amp;Accept-Encoding=gzip%2cgzip%2cgzip&amp;Accept-Language=en-US&amp;Authorization=NTLM+TlRMTVNTUAADAAAAGAAYAH4AAAAYABgAlgAAAA4ADgBIAAAAEgASAFYAAAAWABYAaAAAABAAEACuAAAANYKI4gUBKAoAAAAPRQBaAEUAUwBPAEYAVABKAEsAbwB0AGEAcgBzAGsAaQBLAE8AVABBAFIAQwBBAFMAVABMAEUAvLisuuzUv6kAAAAAAAAAAAAAAAAAAAAAVjEA56O20yN8mf9I854%2bj5Uv5P6dgzJHKyiKXw6Frzq0%2bHPGhl1UwA%3d%3d&amp;Expect=100-<span style="color: #0000ff">continue</span>&amp;Host=VirtualATName%3a8080&amp;User-Agent=Team+Foundation+(devenv.exe%2c+9.0.30729.1)&amp;X-TFS-Version=1.0.0.0&amp;X-TFS-Session=e998d615-a149-43cf-96ca-c9bd3577c1a2
Path: /VersionControl/v1.0/repository.asmx
Local Request: False
Host Address: 10.3.2.25
User: DomainName\UserName[authentication type: NTLM]
 
Exception Message: TF30063: You are not authorized to access VirtualATName. (type TeamFoundationServerUnauthorizedException)
 
Exception Stack Trace: at Microsoft.TeamFoundation.Client.TeamFoundationSoapProxy.ThrowIfUnauthorized(HttpWebResponse response)
at Microsoft.TeamFoundation.Client.TeamFoundationSoapProxy.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Microsoft.TeamFoundation.Proxy.BisRegistrationServiceProxyWsdl.GetRegistrationEntries(String toolId)
at Microsoft.TeamFoundation.Proxy.BisRegistrationProxy.GetRegistrationEntries(String toolId)
at Microsoft.TeamFoundation.Proxy.BisRegistrationService.RefreshMemoryCache()
at Microsoft.TeamFoundation.Proxy.BisRegistrationService.RefreshCachesIfNeeded(Boolean direct)
at Microsoft.TeamFoundation.Proxy.BisRegistrationService.GetRegistrationEntries(String toolId)
at Microsoft.TeamFoundation.Server.TeamFoundationApplication.GetRegistrationEntry(String toolName)
at Microsoft.TeamFoundation.Server.TeamFoundationApplication.GetDatabaseConnectionString(String toolName, String dbName)
 
</Data>
</EventData>
</Event>
We found the blog by Steve St-Jean who recently had set up issues with a TFS warm stand by tier. We did not have as many issues as he reported but it did point us in the direction of the Microsoft KB 926642. This is the issue with windows server authentication when using fully qualified domain names (FQDN). Since we are attempting to set the computer to use a virtual server name, we believed this could the source of our problem. The KB article does not mention Windows server 2008 but we found a post where the workaround was also implemented for 2008.
We choose to implement the second method of the KB article:
After the application tier machine had restarted, TFS worked without further issue, the client workstations could connect to TFS by using the new TFS virtual server name.