tags:

views:

236

answers:

2

I'm trying to install Team Build (2008) on a different Build Server (BS) to the Application Tier (AT). BS is a 32-bit Windows 2008 server (as is the AT). They are on a corporate domain.

The EXE in question is

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies>
TFSBuildService.exe

The service on BS cannot start - the error is "Windows could not start the Visual Studio Team Foundation Build service on Local Computer\r\nError 5: Access is denied.". There is NO additional information in the Event Log. It is set to run as DOMAIN\TFSSERVICE account, which is also added to the Local Administrators group. It fails very quickly.

When I try to run it 'interactively' - the error on the command line is "Program too big to fit in memory".

It seems to me like this should be a fairly simple thing to set-up and use. What am I missing?

Notes:

  • I got my .config from Buck. I'm pretty sure I've correct set the ports, Windows Firewall rules
  • I can access the web services on AT from BS via Internet Explorer (using the DOMAIN\TFSERVICE login)
  • I've added DOMAIN\TFSSERVICE user to a TFS project's Build Services group
  • I have checked DOMAIN\TFSSERVICE has full permissions on pretty much everything on the Build server.
+1  A: 

Try this:

  • Associate the default port to the new build service account using the wcfhttpconfig.exe command-line tool located in the following folder: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies

  • Execute (from the folder above): wcfhttpconfig.exe reserve DOMAIN\UserAccount 9191

  • Full credit from the following post: http://wesmacdonald.spaces.live.com/Blog/cns!25108A9ADA96C9D7!1553.entry

  • I suggest you should set up a dedicated TFSBUILD account and not use the TFS Service account for this task as a best practice.

Davemundo
Thanks Davemundo, have already done the wcfhttpconfig.exe trick. The dedicated build account is a good idea - however as it is already failing with 'access denied' I really want to get it *working* first before mucking around with a limited-permission account.
CraigD
So... it turns out the "Program too big to fit in memory" was because my installer files were corrupt (what are the chances...?). Uninstalling, re-downloading the installer from MSDN and re-installing got it working first time. I'm marking this as the answer because it's still good advice that others might need if they come across this question.
CraigD
A: 

OK, the fact that you can access web services using the TFSSERVICE account from BS through to AT is a good thing, I am making the assumption you have created a LOCAL account on the BS machine for the TFSSERVICE account?

If not, please:

  • add a LOCAL account with the same name as DOMAIN\TFSSERVICE.
  • ensure that the password matches that of the DOMAIN\TFSSERVICE account.
  • ensure that account has "log on as a service" right under Local Security Policy.

Please read article: http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/d519b8e3-451a-4f07-97b1-e2943c2756c2

My issue was that my passwords for the AT and BS machine had to MATCH on the same domain. Please double-check that the TFSSERVICE account password matches on both the AT and BS machine, as the service will use impersonation when on the same domain.

Davemundo
That link is for a "Workgroup" environment. I don't need a local BS account or impersonation because both servers are on a Domain and using a Domain Account (which has been given 'log on as a service' on the BS). Really appreciate your help but I don't think the workgroup instructions are relevant for our environment...
CraigD