This week, I have been doing some tests with Team Foundation Server 2013 with regards to the search capability in a SharePoint which is installed during the installation of Team Foundation Server 2013.
I installed a Team Foundation Server 2013 application server and a separate SQL Server to host the databases. I opted to install SharePoint Foundation 2013 during the TFS installation on the same application server. The installation went well and everything looked fine. TFS was running and the SharePoint teamsites were also purring like a kitten.
But then I tried to do a search from the default team site which was created for me. I got the following message:
“Your search cannot be completed because no Search service is available. Contact your administrator for more information.”
This would make sense because I never configured anything remotely resembling a search service. I headed over to Service Applications in Central Administration and this is what I saw.
I clicked “New” and nothing… nothing happened. No dropdown.
Then I remembered that in order to get your Search Service Application provisioned you have to create it using the configuration wizard in Central Administration.
I started the wizard and when I got to the page where I needed to select the services I want, I saw only 1 service. The Usage and Health Data Collection service.
Not really encouraging. No Search Service Application. I decided to look in the Services console of my server and see if I had 2 services which you normally should have when you install SharePoint (SharePoint Server Search 15 and SharePoint Search Host Controller).
Wow! Really!? Where’s the SharePoint Server Search 15? Now what?
Time for a little test. I reverted back to a snapshot I took before I started the TFS installation and did a new installation in 2 steps.
- Install SharePoint Foundation 2013, which I downloaded here.
- Install TFS 2013 and opt to use the default SharePoint location. TFS detects the presence of a local SharePoint installation.
When I installed SharePoint Foundation manually, I ran the configuration wizard and saw that there were more service applications to provision.
One of them… Search Service Application. I continued with the wizard and let it provision all of the service applications. When the wizard had finished, I turned to the Services console on the server and saw that both Search services were there and were running.
Naturally, when navigating to the Service Applications page, the Search Service Application was also available.
I uploaded some documents to the site which was created for the default team project collection, kicked off a full crawl and performed a search… and voila, instant results!
What does this mean? If you let TFS install SharePoint Foundation in the process, you don’t have search capability? It sure looks that way.
Let’s see… when you install SharePoint Foundation separately, the “SharePoint Server Search 15” service points to c:\program files\Windows SharePoint Services\15.0\Bin\mssearch.exe.
After going to this location on a server where SharePoint was installed by the TFS installer, there is a folder c:\program files\Windows SharePoint Services\15.0\Bin but there’s no mssearch.exe!!!!
That’s bad. Really bad! This clearly indicates that the SharePoint Foundation which ships with TFS is not a full SharePoint Foundation at all. Too make sure it wasn’t just a “glitch”, I installed it 3 times and got 3 times the same result. Even another colleague who did the same thing… also the same result.
Moral of the story:
Never let the TFS installer install SharePoint for you! Install it manually before you install TFS and then reuse it during TFS installation.
If there’s somebody who says “Bart, my friend, you’re doing it wrong. It should definately work without having to install SharePoint manually”, well, put your money where your mouth is and show me how it’s done. I will gladly admit that I was wrong here.
We filed a bug report for this on Microsoft Connect and we received an answer from the Visual Studio product team which confirms my suspicion: SharePoint Foundation 2013 which is included with TFS2013 is a stripped version of the complete SharePoint Foundation.
Here’s the answer from Microsoft on this:
Hello – If you choose to install SharePoint through TFS, we will only configure services that you would need to use for TFS-supported integration features. We do this to conserve resources. Search does not fall into this category, and moreover is one of the largest consumers of memory in SharePoint, so it is not advised to turn it on if you are running SharePoint and TFS on the same box. I would encourage you to reach out to the SharePoint team to ask why you cannot add this service after initial configuration. In the meantime, you should install SharePoint yourself on a separate server if you want to pick and choose services for yourself. The SharePoint installation that TFS performs is simply a convenience for customers who only want to use SharePoint Foundation for integration with TFS.