Configuration Instructions for TFS 2010

Mar 26, 2011 at 12:29 AM

Hi,

I'm having some issues setting up the latest version with TFS 2010.  I'm not entirely sure what to use for the TeamProjectCollectionUri and the BaseAddress settings in the TfsExplorer.exe.config file.  Is there a link somewhere that explains how I determine these?

Thanks in advance!


DL

Mar 26, 2011 at 1:57 AM

you mean, TfsDeployer.exe.config?

Here is my set up and hope that it help you to set it up.

 

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="TfsDeployer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <TfsDeployer.Properties.Settings>
      <setting name="KeyFile" serializeAs="String">
        <value />
      </setting>
      <setting name="SignDeploymentMappingFile" serializeAs="String">
        <value>True</value>
      </setting>
      <setting name="TfsUserName" serializeAs="String">
        <value><!---- You need TfsUserName like TFSService ----> </value>
      </setting>
      <setting name="TfsDomain" serializeAs="String">
        <value><!--- Your domain Name -------> </value>
      </setting>
      <setting name="TfsPassword" serializeAs="String">
        <value><!--- Password for Tfs User Name ---> </value>
      </setting>
      <setting name="TeamProjectCollectionUri" serializeAs="String">
        <value><!--- You can get this address from TFS Administration console -- you need to put a valid address of the TP colletion URI like http:///tfsservername:8080/tfs/Defaultcollection---></value>
      </setting>
      <setting name="BaseAddress" serializeAs="String">
        <value>http://<IP Address of the Server where you installed TFS deployer>/Temporary_Listen_Addresses/TfsDeployer</value>
      </setting>
    </TfsDeployer.Properties.Settings>
  </applicationSettings>
  <system.net>
    <mailSettings>
      <!-- TODO update mail settings for each environment -->
      <smtp deliveryMethod="Network" from="from mail adress like joe@msn.com" >
        <network host="your SMTP mail server name" defaultCredentials="true" />
      </smtp>
    </mailSettings>
  </system.net>

  <system.diagnostics>
    <!-- Uncomment the switches section to increase trace verbosity -->
   
    <switches>
      <add name="Readify.Useful.TeamFoundation.Common" value="Verbose" />
      <add name="TfsDeployer" value="Verbose" />
      <add name="TfsDeployer.DeployAgent.DeploymentHostUI" value="Verbose" />
    </switches>
   
    <trace autoflush="true" />
  </system.diagnostics>

</configuration>

Mar 28, 2011 at 6:02 PM

Hi, Thanks for the quick response.

The two settings that were a bit unclear were the TeamProjectCollectionUri and the BaseAddress settings.  For the TeamProjectCollectionUri setting I think I have it figured out now... before I was using http://tfsservername:8080/tfs/MyProjectCollection/MyProject/ but that didn't work.  Changing it to http://tfsservername:8080/tfs/MyProjectCollection/ seemed to make it pass the test-tfsdeployment script.  I'm not entirely sure what the BaseAddress setting is for though...

Any idea what the BaseAddress setting should be?

Mar 28, 2011 at 7:02 PM

This post sort of clears up my questions regarding what these values are for: http://tfsdeployer.codeplex.com/discussions/222586

Mar 28, 2011 at 7:08 PM

So, if I'm reading this correctly... my settings should be like this:

      <setting name="TeamProjectCollectionUri" serializeAs="String">
        <value>http://my-tfs:8080/tfs/Base/</value>
      </setting>
      <setting name="BaseAddress" serializeAs="String">	
        <value>http://my-tfs/Temporary_Listen_Addresses/TfsDeployer/</value>
      </setting>

Or am I missing something?

Mar 28, 2011 at 7:35 PM

I think the baseAddress you should use IP address of the server you installed the TFS deployer.

Coordinator
Mar 28, 2011 at 9:55 PM

The BaseAddress should be a full url that TFS Deployer will listen on to receive build quality change notifications from the TFS server.

If you specify "http://mydeployermachine:1234/" for example, TFS Deployer will begin listening for all requests on port 1234.

If you specify "http://mydeployermachine/TfsDeployer" for example, TFS Deployer will listen for requests on port 80 where the URL begins with "/TfsDeployer".

The BaseAddress is also passed to the TFS server at startup when subscribing to build change notifications. Therefore the "mydeployermachine" part of those examples is the name of the deployer machine as the TFS server would see it. I recommend using the FQDN of the deployer machine (eg mydeployermachine.mydomain.com). Don't use "localhost" unless Deployer and TFS are on the same machine. Never use IP addresses, use DNS names -  machines use numbers, people use names.

Using the "http://.../Temporary_Listen_Addresses/..." style BaseAddress will mean you don't need to configure the HTTP.SYS URL ACL as this address should be preconfigured on all systems for use by all user accounts.

Regards,

Jason

Mar 28, 2011 at 10:24 PM

Alright, thanks guys that makes total sense!

Just to be clear, and I should have stated this earlier, I'm doing the less-than-optimal setup of having TFS + TFS Build + TFSDeployer all on the same box.  At some point, we'll need to scale up but not just yet.  I've gone ahead and chosen to use the FQDN.  Additionally, I've switched the configuration to match the installation checklist port of 8881 as so:

 

      <setting name="TeamProjectCollectionUri" serializeAs="String">
        <value>http://my-tfs:8080/tfs/Base/</value>
      </setting>
      <setting name="BaseAddress" serializeAs="String">	
        <value>http://my-tfs:8881/Temporary_Listen_Addresses/TfsDeployer/</value>
      </setting>

 

Also setup my ACL as directed in the checklist but still not getting the events to show up in the console window of the service...  Is there any special significance to using port 8881?

DL

Coordinator
Mar 29, 2011 at 8:48 AM

There is no special significance to port 8881. One of the very early releases of TFS Deployer used it as a default setting and it has stayed.

Jason

Jun 8, 2012 at 10:24 PM

Hi Jason, DL,

Was there ever a resolution to this?  I'm stuck at the some place with the installation/configuration.  Johnroh was helping in this thread http://tfsdeployer.codeplex.com/discussions/358798.  His suggestion was to check that the BaseAddress url does not return a 503 Service Unavailable in the browser.  No matter what I do, it returns the 503.  It seems strange to me that the service does indeed start and subscribes successfully, but the listening url is unavailable.  Any tips would be very helpful.

Thanks,

Dave

Jun 11, 2012 at 2:54 PM

I decided to just download the source code and compile it to try to debug it.  The current source code works fine.  The TfsDeployer release 1.4.0.54837 does not.