Search across Team Project Collections with Search Server Express 2010

July 24th, 2010

If you’re using TFS 2010, you’ll be familiar with the idea of Team Project Collections. The Team Project Collections are completely independent from one another, and so you’ll need to decide how many Team Projects will live together in each TPC. To determine your approach to this, you’ll need to consider the following;

Each TPC is a distinct database in your Date Tier, and therefore, a TPC is now your lowest unit of restore. Whilst this gives some much needed restore granularity (which TFS 2005/2008 did not have) it also means that each Team Project Collection will be mapped to a SharePoint Site Collection. If you’re using WSS3.0 this means that you will not be able to search content across these Site Collections. The end result is that your developers may not be able to search each others documents/work items etc.

To demonstrate the problem…


To solve this problem, you can use MS Search Server Express 2010. I’d heartily recommend using a standard SQL Server 2008 instance for the databases, as the alternative is to use the Microsoft Internal database which SharePoint can install automatically (which is very unpleasant to have to manage)

Once you’d installed the pre-requisites, (which come with the download) and you’ve installed SSE, chose the ‘Farm’ option (not standalone) – this will allow you to specify a SQL instance. Then, in the Search Application, you can simply create a new content source, and point the indexer to your SharePoint root Site Collection address. The indexer will then crawl all your Site Collections and your users can then search across all the TFS Project Portals.

No Search Results in Windows Sharepoint Server or TFS Project Portal?

July 24th, 2010

If you’ve got a WSS3.0 Installation, (as part of TFS 2010 or not) then you may be struggling to get ANY search results from your project portal.

This is caused by a bug with WSS3.0 (with SP2) whereby Sharepoint will not index any Site Collection content, UNLESS a root Site Collection exists.

Typically with TFS 2010, you would normally simply create a site collection at
and this is where your TFS Site Collections will live.

Unfortunately, unless you can actually browse to content at
You’ll never see any search results!

The easiest way to fix this, is simply to create a new site collection in the root. If you’re doing this as part of TFS 2010, you’re best of making a Wiki Site, or at least NOT chosing a ‘Team’ Site, otherwise the Site Collection will moan about not being connected to a TFS 2010 Team Project Collection…

TFS 2010 Build’s fail to GET files larger than 2MB

July 24th, 2010

You might find that in TFS 2010 your builds fail whever they attempt to GET a file over 2MB in size. This ocurrs if you’re using IIS7.5 (on Windows Server 2008 R2) and is in fact another IIS bug, and not a TFS 2010 Problem.

This issue occurs because the idle connection time-out for the HTTP service expires prematurely. This causes the network connection to disconnect unexpectedly. You will get a message through Visual Studio informing you which files failed to download. Usually with this error message:

Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

To solve this issue, you’ll need to install a patch on one (or all) of your Application Tier Servers. The patch and conditions for install can be found here

Cannot upload large files to WSS3.0 running on IIS7?

July 24th, 2010

This is an issue a lot of people have been seeing recently – Unfortunately, due to the massive number of different Apps which sit atop IIS, it can manifest itself in a huge variety of ways. You might see the error through Windows Sharepoint like this;

Error message when you try to upload a large file to a document library on a Windows SharePoint Services 3.0 site: “Request timed out”

Or you might see the error through Team Foundation Server, like this:

Microsoft Visual Studio
Attachment upload failed. Check that you have a network connection and that the Team Foundation Server is available. If the problem persists, contact your Team Foundation Server administrator.

Or any other number of errors from various applications.

The problem lies with IIS7′s maxAllowedContentLength. This is by default set to a value of 30000000 bytes (~28.6 MB)

The fix the issue, make the following change to your web.config file

<requestLimits maxAllowedContentLength=”2000000000″/>

You can change the value of ’2000000000′ to be whatever you want.

IIS7 Request Filtering via the GUI or appcmd.ex

September 28th, 2009

Request Filtering is IIS7  is a nice feature allowing an excellent level of customisation on virtually every level of an HTTP request.

To enlabe request filtering in Win 2008, follow these steps

  1. On the taskbar, click Start, point to Administrative Tools, and then click Server Manager.
  2. In the Server Manager hierarchy pane, expand Roles, and then click Web Server (IIS).
  3. In the Web Server (IIS) pane, scroll to the Role Services section, and then click Add Role Services.
  4. On the Select Role Services page of the Add Role Services Wizard, select Request Filtering, and then click Next.

Request Filtering for IIS7

Once installed you set the various options through appcmd.exe.  Or, if you prefer, you can install IIS7 Admin Pack, which will create a GUI for easier configuration of this feature.

A list of the various options can be found here:

Enabling Server side includes in IIS7

July 22nd, 2009

A relatively little used feature now, but still important if your HTML passes server side includes. Mainly used for templated html structures which call various blocks of layout to the page, this feature is not enabled by default in IIS7.

To switch the feature on, firstly:
Control Panel > Programs and Features > Turn Windows Features On or Off

control panel

Next you need to enable the SSI feature as shown:

enabling ssi includes in IIS7 on Vista

If you’re in Vista -the next time you go into the Handler Mappings in IIS, you’ll see that .shtml, .shtm and .stm file types have been automatically added with the correctly configured handler. If you’re not using Vista, you may need to add these mappings yourself manually through the Add Module Mapping section.

Should be relatively easily tested by setting a test .shtml page to call another section using the standard include:

< !–#include file=”foo.html”– >

As long as the content of that file pulls through, you’ll know it’s working.