Servergeek
Mickey Williams' weblog


Powered by Blogger Pro™

Tuesday, November 08, 2005

TF30177 Error When Installing Team Foundation Beta 3 Refresh


After installing the Beta 3 Refresh of Team Foundation Server, I had a small problem -- I couldn't create new team projects. I received a TF30177 error when the team site was configured in WSS. Rob Caron pointed me to the WSS installation, where the default virtual server apparently hadn't been extended. I investigated a bit and found that although the WSS config database did have an entry for the default virtual server in the VirtualServers table, and the config database had been created, the virtual server had apparently not been properly extended.

I found that running the service account (TFSservice) as a local admin would enable the Team Foundation Server installation to properly configure WSS. I'm not sure if this is a problem with WSS SP2 (which is now required), or a problem with the TFS install.

Update:The error is TF30177, not TF31077. Also, I've run some tests, and it looks like the TFSService account also needs elevated privileges after installation -- if you drop back to just User group membership it's not possible to create a project.


Sunday, November 06, 2005

Richard Hale Shaw Fails the Blog Screen


As a practice manager, I usually spend a portion of my week interviewing candidates. Occasionally I'll get an incorrect answer delivered with such confidence that I wonder if the candidate has any real experience whatsoever. RHS recently gave some very bad advice about the using statement and is so incorrect that I frankly might immediately flip the no-hire bit if we were in an interview. In fact, he is so off the mark, I hardly know where to begin, but I'll just note that:

  • The Dispose pattern is about strong ownership, not shared ownership
  • The using statement is about easing a specific usage of the Dispose pattern
  • The fact that you're not required to allocate an object in the using statement is a red-herring
  • Anyone that even hints at suggesting the use of a finalizer instead of using/Dispose is just not qualified to touch code on a large dynamic system, let alone have a position of higher authority
  • using(){} is less complex than addref/release, malloc/free, and new/delete/delete[]
  • Most mere mortals have difficulty coding a proper substitute for using(){}. In fact, if they have trouble with using, I assert that there's no way that they'll be able to properly implement the required try/finally code in all cases.

Go, read -- it's really just scary in an entertaining way.

I'll try to post more later with code


Home