13 octobre
Using SQL 2008 reporting Service with Team Foundation Server 2008
As I mentioned before, oh the joy of working on the cutting edge!
This time I was installing Team Foundation Server 2008 (TFS) in combination with Report Server 2008, an officially supported scenario.
At first look everything appeared to have been installed correctly, however any application that tries to talk to the Reporting Server using the web services interface (Most notably the famous TFS Administration Tool) fails horrible due to what appears to be a bug in TFS 2008.

TFS internally stores a number of URLs for support services such as SQL, SharePoint and Report Server and exposes these URLs via it’s object model. However the URL it maintains for the Reporting Service points to the Deprecated SQL 2000 Reporting Service Web Services Interface.
Great, I really wanted the Administration Tool to work so I decided to dive straight in and see if I could fix it.
Follow the steps outlined below to make everything work properly:
- Navigate to the TFS Tools directory. Note that mine is located on the E drive.
CD "E:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Tools"
- Export TFS' current settings using the following command:
tfsreg /EXPORT TFSReg.xml <name of sql server>
- Change the URL for the reportservice as follows:
* notepad tfsreg.xml
* search for ReportService.asmx
* replace with ReportService2005.asmx
- Update the changed settings to TFS
tfsreg /Overwrite TFSReg.xml <name of sql server>
For some reason these settings appear to be only loaded the first time someone connects to TFS and are subsequently cached. I can only hope TFS expires this cache at least once a day otherwise making changes such as this is going to be a nightmare in organisations with more than a handful of developers.
So, on the server as well as all clients, search and remove for all instances of ‘RegProxyFileCache.xml’ in the user profile directories. I used a search in "c:\users" (or "c:\documents and settings" if you are on XP or 2003) as the path contains an unfriendly GUID.
Now, if you think that this will make the TFS Administration Tool work then you are sadly mistaken. The ReportService.asmx (SQL 2000) is incompatible with ReportService2005.asmx so some changes need to be made to the source code of the TFS Administration Tool.
- Download the code for version 1.3 (changeset 29980)Don't be tempted to download the latest code as it is a work in progress and some fields are hardcoded (Note to the author, hardcoding port numbers for SharePoint is not a good idea)
- If you are developing on an X64 workstation then update all projects in the solution to use X86 (Project Properties / Build / Platform Target), otherwise the 32bit GAC entries for TFS cannot be found.
- In the Microsoft.DDSolutions.SqlReportServer project open 'Web references' and change the "Web reference URL property of the ReportServer reference to http://<your reporting server>/ReportServer/reportservice2005.asmx. This URL is set at runtime, but manually setting it now updates the schema.
- In ReportingServiceProxy.cs change line 22 to:
public ReportServer.ReportingService2005 SQLReportingServices = new Microsoft.DDSolutions.SqlReportServer.ReportServer.ReportingService2005();
- And in the same file line 66 to:
ReportServer.Role[] rsRoles = SQLReportingServices.ListRoles(Microsoft.DDSolutions.SqlReportServer.ReportServer.SecurityScopeEnum.All);
That is it. Everything is working fine now and as an added bonus your Team Explorer can connect properly to the reports as well.