Andrew
Andrew

Reputation: 67

Build never starts on TFS2012

I'm attempting to set up some build controllers and agents in our TFS infrastructure. Our TFS server is setup as a build controller, and I have a few build agents set up as well.

When I queue a new build on my system, all appears to be well. No error messages appear, and the build appears in the queue on my system. However, that's all that ever happens. When I go to the page for the build in Visual Studio, it states it's been "Running for 0 seconds". Looking at the admin console on our TFS server, the controller states it's "Ready", but nothing more. All the agents are similarly listed as 'Ready'.

I'm not aware of any logs I can use to diagnose this issue. I've set the Logging Verbosity to 'Diagnostic', but options in the Diagnostics dropdown are greyed out. The activity is completely blank, as well.

Looking in the database on the build controller, the dbo.tbl_BuildController table does list the build. What I find odd, though, is the StartTime is NULL. If I stop the build in VS, the start time and the end time are set to the same thing in the database.

So, I know that the build is registering with the build controller, and that there's not a communication issue; the build just never starts, and never give an error. How can I resolve this? (or, at least get an error that I can chase down).

EDIT: The issue appears to be related to the TFS server. Here's what I uncovered in the event log:

WebHost failed to process a request.
 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/10411892
 Exception: System.ServiceModel.ServiceActivationException: The service '/tfs/queue/GPA/Services/v4.0/MessageQueueService2.svc' cannot be activated due to an exception during compilation.  The exception message is: This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection. If your service is being hosted in IIS you can fix the problem by setting 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' to true or specifying 'system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters'.
Parameter name: item. ---> System.ArgumentException: This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection. If your service is being hosted in IIS you can fix the problem by setting 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' to true or specifying 'system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters'.
Parameter name: item
   at System.ServiceModel.UriSchemeKeyedCollection.InsertItem(Int32 index, Uri item)
   at System.Collections.Generic.SynchronizedCollection1.Add(T item)
   at System.ServiceModel.UriSchemeKeyedCollection..ctor(Uri[] addresses)
   at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)
   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses)
   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
   --- End of inner exception stack trace ---
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
   at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)
 Process Name: w3wp
 Process ID: 3756

Upvotes: 4

Views: 8097

Answers (4)

Shahyad Sharghi
Shahyad Sharghi

Reputation: 719

The build controller and agent must run the same version of Team Foundation Build. (Buid Service version is something like v4.0 or v4.1 and it is different from tfs product version which is some thing like 11.0.50727.1)

So, if the build Agent and controller are deployed in different machines, check the build service version on both machines. it must be the same.

TFS prevents to assign a build agent to a build controller with different build service version. However, you are allowed to upgrade one of the build machines to a different version (for example visual studio update 2) without detaching the controller and agent in some cases the build service version stay unchanged (for example inspite of upgrading to update 2 the version stay v4.0)

in this situation if you want to apply the new version of build service

in tfs 2012 or 2013 to check the build service version:

  1. Go to Build Machine
  2. Open Team Foundation Server Administration Console
  3. Open Build Configuration
  4. Open Build Service properties (click on the properties link next to the unregister link)
  5. "Listen for build agent communication on" text box

to apply change of the build service version

  1. stop the service
  2. Click the "Change" button
  3. set a different port number
  4. reset the previous port number

immediately the build service version will change from v4.0 to v4.1

Upvotes: 0

Vikas Goyal
Vikas Goyal

Reputation: 457

This worked for me, password of the user account which was used to access TFS hosted on different Server expired.

Password reset fixed it for me.

Upvotes: 0

gregpakes
gregpakes

Reputation: 4535

I would start looking in the Event Log.

  1. Control Panel -> Administrative Tools
  2. Event Viewer

I am assuming that there will be some sort or error appearing in there. If your build agents are on a different machine, make sure you look in the event log there too.

Update from original posters comments

There was an exception in the Event Log which pointed us to here: TFS2012 Build Service offline

Upvotes: 3

TimVK
TimVK

Reputation: 1146

Go check the security settings of the user that is used for the build service properties. I've had almost the same issue and it was because I changed some security settings for that specific user where he suddenly could not build anymore.

To find the user:

  1. Go to your TFS server
  2. Open Team Foundation Server Administration Console
  3. Open Build Configuration
  4. Open Properties of the Build Service

Upvotes: 3

Related Questions