TFS 2008 SP1 & SQL 2008 SP1 combination fails to create new team project

(Chinese Version)

In a TFS2008 SP1 deployment with SQL 2008 SP1 as the database server, new team project creation can fail very fast. The creation log contains the detail resembling this:

2009-12-15 17:54:43Z | Module: Rosetta | Thread: 16 | Entering Initialize in RosettaReportUploader
---begin Exception entry---
Time: 2009-12-15 17:54:43Z
Module: Initializer
Event Description: TF30207: Initialization for plugin "Microsoft.ProjectCreationWizard.Reporting" failed
Exception Type: Microsoft.TeamFoundation.Client.PcwException
Exception Message: TF30224: Failed to retrieve projects from the report server. Please check that the SQL Server Reporting Services Web and Windows services are running and you have sufficient privileges for creating a project.
Stack Trace:
   at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context)
   at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Initialize(ProjectCreationContext context)
   at Microsoft.VisualStudio.TeamFoundation.EngineStarter.InitializePlugins(MsfTemplate template, PcwPluginCollection pluginCollection)
--   Inner Exception   --
Exception Type: System.InvalidOperationException
Exception Message: Client found response content type of '', but expected 'text/xml'.
The request failed with an empty response.
Stack Trace:
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.ListChildren(String Item, Boolean Recursive)
   at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context)
-- end Inner Exception --
--- end Exception entry ---

The problem here is that when doing job above TFS calls a reporting service web service at ReportService.asmx. Yet this URL was deprecated in SQL Server 2008 SP1. The new url is ReportService2005.asmx instead.

So the solution is: from the tfs database server SQL management console, run this sql query:

Select url from TfsIntegration.dbo.tbl_service_interface where name=N'ReportsService'

This value should be something like “http://{path}/ReportService.asmx” . Change the ReportService.asmx into ReportService2005.asmx. You can change this manually in the table, or by running an SQL update statement. (Note: make sure the rest of the path is identical to the original value, only add “2005” in the asmx file name ).

It is not recommended that one modify the URL with TFSAdminutil.exe because of this article.