今天遇到一个TFS的问题,折腾了好几个小时,故将其记录,给有遇到类似问题的朋友一些参考。

1、本文前提:服务器端只安装了TFS2010,本地没有安装Visual Studio 2010,因此不能在服务器端创建团队项目,而客户端通过互联网(非局域网,即不能通过机器名访问)来连接TFS。

2、问题:无法创建团队项目,先后遇到如下的错误代码:TF218027、TF30162、TF30225。

(1)TF218027的错误如同http://www.dotblogs.com.tw/yc421206/archive/2012/02/09/68562.aspx 中的界面所示。

(2)无权访问:http://【远程服务器名】/ReportServer/ReportService2005.asmx

(3)创建团队项目过程中产生错误:

关于TFS2010 远程无法创建团队项目的若干问题总结-LMLPHP
模块: Engine
事件说明: TF30162: 来自组“Reporting”的任务“Populate Reports”失败
异常类型: Microsoft.TeamFoundation.Client.PcwException
异常消息: “项目创建向导”在向 http://****/ReportServer/ReportService2005.asmx 上的 SQL Server Reporting Services 创建报表时遇到错误。
异常详细信息: “项目创建向导”在 http://****/ReportServer/ReportService2005.asmx 上的 SQL Server Reporting Services 上
创建报表时遇到问题。
目前无法确定失败的原因。
因为该操作已失败,所以向导无法完成
SQL Server Reporting Services 站点的创建。
堆栈跟踪:
在 Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Execute(ProjectCreationContext context, XmlNode taskXml)
在 Microsoft.VisualStudio.TeamFoundation.ProjectCreationEngine.TaskExecutor.PerformTask(IProjectComponentCreator componentCreator, ProjectCreationContext context, XmlNode taskXml)
在 Microsoft.VisualStudio.TeamFoundation.ProjectCreationEngine.RunTask(Object taskObj)
-- 内部异常 --
异常消息: TF30225: 上载报告“Bug 状态”时出错: 无法完成当前操作。用户数据源凭据不满足运行此报表的要求。用户数据源凭据未存储在报表服务器数据库中,或者用户数据源配置为不需要凭据但未指定无人参与的执行帐户。 ---> Microsoft.ReportingServices.Diagnostics.Utilities.InvalidDataSourceCredentialSettingException: 无法完成当前操作。用户数据源凭据不满足运行此报表的要求。用户数据源凭据未存储在报表服务器数据库中,或者用户数据源配置为不需要凭据但未指定无人参与的执行帐户。 (类型 ReportingUploaderException) 异常堆栈跟踪: 在 Microsoft.TeamFoundation.Client.Reporting.ReportingUploader.UploadReport(XmlNode report)
在 Microsoft.TeamFoundation.Client.Reporting.ReportingUploader.HandleCreateReports(XmlNode node)
在 Microsoft.TeamFoundation.Client.Reporting.ReportingUploader.Run()
在 Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Execute(ProjectCreationContext context, XmlNode taskXml)
关于TFS2010 远程无法创建团队项目的若干问题总结-LMLPHP

3、解决办法:

(1)关于TF218027:在 http://hi.baidu.com/xlduqevyfzbfyzq/item/4706381df58ce44ae75e0628 这里介绍了这个错误,但是并不是本文的情况。仔细思考之后发现,访问地址(http://****/Reports)是带机器名的,压根都不是远程的地址,因此想到通过更改host来解决。因此,在更改host文件之后该错误不再报了。

(2)虽然TF218027的错误不报了,但是又产生了新的问题:在创建团队项目过程中,无法下载过程模板,即进度条都不出现,发现是访问http://*****/ReportServer/ReportService2005.asmx 地址时需要登录,因此判定是服务器该站点的匿名访问未打开。打开服务器的IIS,可惜并未发现ReportorServer的虚拟目录,网上查资料得知,该虚拟目录是Reporting Service的站点目录。于是,找到该目录,赋予Network Service的用户权限,然后再访问该地址,立即出现了该web服务的WSDL。

关于TFS2010 远程无法创建团队项目的若干问题总结-LMLPHP

(3)于是进度条开始前进了,可是后面又报错:TF30162和TF30225,分析一下可以大致猜测,只要解决TF30225即可。于是找到了http://blog.163.com/benben_hy/blog/static/164689454201181483754346/ 这篇文章,至此,所有问题都得到解决,远程添加团队项目成功。

04-20 23:58