0 Comments

UPDATE: This has been identified as a bug and will be fixed in the next release for on-premise

So if you have a lot customizations in your process template there is a slight chance you would have seen the error below after the upgrade.

image_thumb1

If you have completed the Configure Features option

image_thumb3

and still see the error odds are you have need to follow similar steps to below

Look for the actual exception

Take a look at the event log under the Microsoft-Team Foundation Server/Debug section of Applications and Services Log

image

When the error occurs do you see an error? I received the error below that pointed towards something with the add panel being wrong

Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.InvalidProjectSettingsException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.DefaultSettingsValidatorDataProvider.GetFieldType(String workItemTypeName, String fieldReferenceName)
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProcessSettingsValidator.<>c__DisplayClass4b.<>c__DisplayClass4f.<ValidateAddPanels>b__41(String type)
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProcessSettingsValidator.<>c__DisplayClass4b.<ValidateAddPanels>b__40(String refName)
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProcessSettingsValidator.ValidateAddPanels()
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProcessSettingsValidator.ValidateContent(OptionalFeatures featuresToValidate)
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProcessSettingsValidator.Validate(OptionalFeatures featuresToValidate, Boolean validateStructureOnly)
   --- End of inner exception stack trace ---
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProcessSettingsValidator.Validate(OptionalFeatures featuresToValidate, Boolean validateStructureOnly)
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProcessSettingsValidator.Validate(TeamFoundationRequestContext requestContext, ProjectProcessConfiguration settings, String projectUri, Boolean correctWarnings, OptionalFeatures featuresToValidate)
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProjectConfigurationService.GetProcessSettings(TeamFoundationRequestContext requestContext, String projectUri, Boolean validate, Boolean bypassCache)
   at Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProjectConfigurationService.GetCommonSettings(TeamFoundationRequestContext requestContext, String projectUri, Boolean validateSettings)
   at Microsoft.TeamFoundation.Server.WebAccess.Agile.AgileAreaRegistration.CanDisplayTiles(TfsWebContext webContext)

Find the problem

I went over to the process configuration which seemed to be the logical starting point based off the error on screen and stack trace from the event log. I compared all the customizations I had with what is in the default Scrum 2013.2 template and saw that I had extra fields in one of my Add Panels

image

I removed these and imported the ProcessConfiguration.xml using the witAdmin importprocessconfig tool, this worked and the site was working as normal without the error.

Fix the problem

Obviously we couldn't just remove the extra fields and be on our way because those were there for a reason. The Add Panel changes were applied for the Requirements Backlog in our case. We took a look at the Categories.xml to verify which the work item types were that were part of the requirements and found the 4 below

image

We currently only use new Product Backlog Items and the other 3 are "old" work item types that are in TFS because we used to use them and don't want to remove them because there are existing work items of this type in our TFS project. So we went to the 3 other WITd and made sure that they each had these 3 fields, we found as we expected that they didn't have each of them.

After adding the fields we re-imported the WITd for all requirement types and then tried to import the ProcessConfiguration.xml and it imported without any issues and our TFS was working again without any errors.

What Happened then?

Before the update we were obviously using this template so everything use to work, although I must admit it makes more sense that all WITd's need the fields being displayed in the Add Panel for it's categories, it use to not be the case so after upgrading this was a rather unusual error for us. It could possible have been looked at as a bug here this wasn't required to match. If I find out the reason for the change I'll update here Smile

0 Comments

This post was originally found on my old blog at http://gbeeming.wordpress.com/2013/06/28/tf400324-team-foundation-services-are-not-available-from-server/.

Full Error

TF400324: Team Foundation services are not available from server <Server/CollectionName>. Technical information (for administrator):   Page not found.

Problem

This error could occur if you have moved a collection from one server to another and a client application connects to both servers. In my case this is because I’m running TFS 2012 on one server for production use and have backed up and restored a collection to a newly installed TFS 2013 Preview so that I can configure the process template (Upgrading to Visual Studio Scrum 3.0 process template in TFS 2013) to take advantage of the new features in 2013 and test that before moving/upgrading the production server.

Quick Fix

As a quick fix you can

  1. Close Visual Studio and related apps
  2. Browse to %LocalAppData%\Microsoft\Team Foundation\5.0\Cache and delete all the contents of that folder

This isn’t ideal as you will need to do this for each client and every time you switch between the 2.

Better Fix

As a better and more user friendly fix, you can

  1. Do the Quick Fix
  2. TS to the server where you have The new TFS server with a copy of your collection attached (my TFS 2013 instance)
  3. Open a command line window in Administrator mode
  4. Run cd "C:\Program Files\Microsoft Team Foundation Server 12.0\Tools"
  5. Run tfsconfig ChangeServerID /sqlinstance:<Your Sql Instance Name> /databasename:<Your configuration Database Name> /ProjectCollectionsOnly
  6. This should bring up a message that says "The command ChangeServerId should only be run against a set of Team Foundation Server databases that have no application tiers configured. Do you want to continue with this operation? (Yes/No)"
  7. Type Yes and hit enter

Now you should be fine to use both instances of TFS with the same collection name without issues