首页 > 疑难杂症 > TFS无法创建新的Team Project

TFS无法创建新的Team Project

疑难杂症

今天又遭遇了TFS无法创建Team Project的问题。记得上次出现过一次,但是忘记怎么解决来着了。所以说应该花点时间把问题记录一下的嘛 o(︶︿︶)o

服务器的系统环境是Team foundation server 2008+windows server 2008+Sql Server 2005+VS sp1。创建到最后一步的时候提示错误,说是创建Reporting Site的时候出的问题,让我检查权限是否配置正确云云。我确认了一下我登录TFS使用的是administrator账户,而且此账号在Sharepoint上的权限已经是content manager了,应该不是这个问题。打开TFS的异常日志,看到如下的错误信息:

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.
Exception Details: The Project Creation Wizard encountered a problem while
creating reports on the SQL Server Reporting Services on GS-CONFIGSERVER.
The reason for the failure cannot be determined at this time.
Because the operation failed, the wizard was not able to finish
creating the SQL Server Reporting Services site.
Stack Trace:
   在 Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context)
   在 Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Initialize(ProjectCreationContext context)
   在 Microsoft.VisualStudio.TeamFoundation.EngineStarter.InitializePlugins(MsfTemplate template, PcwPluginCollection pluginCollection)
--   Inner Exception   --
Exception Type: System.Web.Services.Protocols.SoapException
Exception Message: 服务器未能识别 HTTP 头 SOAPAction 的值: http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/ListChildren。
SoapException Details: <detail />
Stack Trace:
   在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   在 Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.ListChildren(String Item, Boolean Recursive)
   在 Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context)
-- end Inner Exception --
--- end Exception entry ---

Google了很久终于找到有用的信息。大意就是说,TFS内部维护着一堆web service的Url,用于访问Reporting Service、Sharepoint等服务。但是TFS 2008内部维护的Url使用的web service接口却是已经废弃了的Sql Server 2000的Reporting Service的接口。

修改步骤:

1. 命令行切换到"TFS安装目录/Tools"下

2. 运行命令:tfsreg /export tfsreg.xml 服务器机器名(先导出当前配置)

3. 用记事本打开tfsreg.xml文件,找到reportservice.asmx,将其改成reportservice2005.asmx

4. 运行命令:tfsreg /overwrite tfsreg.xml 服务器机器名(更新配置)

如果还是不行可能是缓存缘故,可以重启机器试试。

Mark一下。

== Kevin Yang ==

本博客遵循CC协议2.5,即署名-非商业性使用-相同方式共享
写作很辛苦,转载请注明作者以及原文链接~
如果你喜欢我的文章,你可以订阅我的博客:-D点击订阅我的文章

  1. husnp
    | #1

    我也遇到这个问题,你这个解决方法真不错,其他人很多都是用重装sp1、改权限什么的,我都试了不行。通过你说的方法解决了。谢谢!

    • Kevin Yang
      | #2

      不客气,能把自己的经验分享出来帮到别人是件很愉快的事情~

  1. 暂时没有trackbacks.