Calendar

<<  September 2010  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910
View posts in large calendar

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.

We choose to set it up using a DNS host.
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 in 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 for application VersionControl.
Web Request Details
    Url: http://VirtualATName:8080/VersionControl/v1.0/repository.asmx [method: POST]
    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-continue&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="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="TFS Version Control" />
    <EventID Qualifiers="0">3028</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2009-05-28T18:30:46.000Z" />
    <EventRecordID>9074</EventRecordID>
    <Channel>Application</Channel>
    <Computer>ATMachineName.DomainName.net</Computer>
    <Security />
  </System>
  <EventData>
    <Data>TF53010: The following error has occurred in 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 for application VersionControl.
Web Request Details
    Url: http://VirtualATName:8080/VersionControl/v1.0/repository.asmx [method: POST]
    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-continue&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-Jeanwho 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 postwhere the workaround was also implemented for 2008.

We choose to implement the second method of the KB article:

    Click Start, click Run, type regedit, and then click OK.

    Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

    Right-click Lsa, point to New, and then click DWORD Value.

    Type DisableLoopbackCheck, and then press ENTER.

    Right-click DisableLoopbackCheck, and then click Modify.

    In the Value data box, type 1, and then click OK.

    Exit Registry Editor.

    Restart the computer.

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.