Lets just rename that Team Foundation Server…………….

I have previously posted on the fun I had getting TFS running in our office. Well thus far it has been stable, other than some ‘user too stupid’ errors, and we have been fairly happy.

The next stage was to expose the TFS server out through our firewall to allow home working. This turned out to not be too bad (expect some posts on our experiences with ISA server soon) but raised an interesting issue.

As far as the Visual Studio Team clients were concerned the TFS server had the physical PC server name in all it’s URL e.g http://myserver:8080. This was not an issue with the office as it could be resolved, but a problem on the Internet. Now I suppose we could have put some host file entries to address this but I really wanted to get it working as http://tfs.mydomain.co.uk:8080.

So we created a new DNS entry (both internally and externally resolving to the correct IP address). Once this DNS entry was created, and the firewall setup I could connect to the TFS server and pull down a project list and check files in and out from home. But I was getting those damned little red crosses next to the documents, reports and could not open the project SharePoint sites.

On checking the URL to be used for these services I saw that they were all still pointing to http://myserver with various SharePoint or Reporting Service directories on the end. Firstly, I had not exposed the default SharePoint and Reporting Services ports via the firewall, but that was easy to fix. The real problem was using the old name, how to change these entries? I think the best option would have been to install the TFS with the full name in the first place! But I did not really want to do a reinstall.

So I had search around and found that in C:\Documents and Settings\[name]\Local Settings\Application Data\Microsoft\Team Foundation\1.0\Cache\[GUID] directory there is a XML file RegProxyFileCache.xml. This contains the details used by the client and can be edited. I replaced the http://myserver entries with http://tfs.mydomain.co.uk. A snippet is shown below from around Line 250 of the file:

<RegistrationEntry>
     <Type>Reports</Type>
     <ChangeType>NoChange</ChangeType>
     <ServiceInterfaces>
           <ServiceInterface>
                 <Name>BaseReportsUrl</Name>
                 <Url>
http://tfs.mydomain.co.uk/Reports
</Url>
          </ServiceInterface>
          <ServiceInterface>
                 <Name>DataSourceServer</Name>
                 <Url>myserver</Url>
          </ServiceInterface>
          <ServiceInterface>
                 <Name>ReportsService</Name>
                 <Url>
http://tfs.mydomain/ReportServer/ReportService.asmx
</Url>
           </ServiceInterface>
       </ServiceInterfaces>
      <Databases />
      <EventTypes />
      <RegistrationExtendedAttributes />
      <ArtifactTypes />
 </RegistrationEntry>
<RegistrationEntry>
      <Type>Wss</Type>
       <ChangeType>NoChange</ChangeType>
       <ServiceInterfaces>
            <ServiceInterface>
                   <Name>BaseServerUrl</Name>
                   <Url>
http://tfs.mydomain.co.uk
</Url>
             </ServiceInterface>
         <ServiceInterface>
              <Name>BaseSiteUnc</Name>
              <Url>\\myserver\sites</Url>
        </ServiceInterface>
        <ServiceInterface>
              <Name>BaseSiteUrl</Name>
              <Url>
http://tfs.mydomain.co.uk/sites
</Url>
          </ServiceInterface>
          <ServiceInterface>
               <Name>WssAdminService</Name>
               <Url>
http://myserver:17012/_vti_adm/admin.asmx
</Url>
           </ServiceInterface>
 </ServiceInterfaces>
<Databases />
<EventTypes />
<RegistrationExtendedAttributes />
<ArtifactTypes />
</RegistrationEntry>

After this change is made on reloading Visual Studio the red crosses go away and the various features work.

However this does not answer the larger question of getting it set right in the first place for new clients, you don’t really want to have to edit each client config. I suspect making similar edits in the C:\program files\microsoft visual studio 2005 team foundation server\tf Setup\eleadservices.xml might do the trick but I have not confirmed this as yet.

I still hold with the comment that TFS is very much an ‘install it right first time’ sort of product.