我们遇到了TFS 2015安装问题,从2010年开始升级。我们遇到了以下问题。这涉及干运行,因此我们将所有内容安装在同一台服务器上,这不是首选方法,我们知道。
•安装了Windows Server 2012 R2的新虚拟服务器
•添加了IIS功能
•已安装的SQL Server 2014
•在服务器上安装了sharepoint foundation 2013
•在服务器上安装了visual studio 2015
•安装了所有必需的.NET目标框架
•已安装必备软件,如MS Build tools 2015,Microsoft Visual Studio 2015代理
•将TFS2010备份还原到新的SQL Server
•已安装tfs 2015并在设置
中运行“升级”选项•处理配置中的所有步骤,例如添加构建控制器和构建代理
•下载Vso代理并运行'ConfigureAgent.cmd'
•在TFS中配置代理池和队列
•添加了额外的团队项目集合。因此,我们从2010年开始收集了一系列旧版升级项目,以及一系列新的团队项目
•管理团队项目,团队成员等
•创建了XAML构建定义,在服务器上正确完成构建,执行测试
然而,
如果我尝试使用部署模板创建新的(非XAML)构建定义(请参阅图像)。 当我们想要选择“测试机器组/ Azure资源组”时,例如在选择测试位置时,会出现问题。选择列表为空。 因此,我们使用“管理”选项添加了计算机组,并且计算机组可用。但是,即使在刷新之后,包含机器组的下拉列表也会保持为空(参见图像)。
接下来,我们检查了他的问题的事件日志。刷新下拉列表时,会在事件日志中生成以下条目:
第一:
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Team Foundation Server" Guid="{80761876-6844-47D5-8106-F8ED2AA8687B}" />
<EventID>0</EventID>
<Version>3</Version>
<Level>2</Level>
<Task>1</Task>
<Opcode>10</Opcode>
<Keywords>0x8000000000000001</Keywords>
<TimeCreated SystemTime="2016-04-12T09:09:21.717163200Z" />
<EventRecordID>59666</EventRecordID>
<Correlation ActivityID="{6AD40FD3-10BA-4A7E-B6D9-F6926072DAB4}" />
<Execution ProcessID="3376" ThreadID="6484" />
<Channel>Microsoft-Team Foundation Server/Debug</Channel>
<Computer>KTBSV021.KTB.local</Computer>
<Security UserID="S-1-5-21-2105344776-4230907741-261866850-3716" />
</System>
- <UserData>
- <Info TraceId="{00000001-0001-0001-0000-000000000000}" xmlns="http://schemas.microsoft.com/TeamFoundation/2010/Framework">
<Tracepoint>0</Tracepoint>
<ServiceHost>{87670F79-6386-4363-9960-73B634419263}</ServiceHost>
<ContextId>10085</ContextId>
<ProcessName>w3wp</ProcessName>
<Username>KTB\tmpadmin</Username>
<VSID>{9E83242F-9944-4CBD-AF10-EF2D449A03B1}</VSID>
<Service>Web-Api</Service>
<Method>TaskDefinitionWebApiProxy.QueryEndpoint</Method>
<Area>DistributedTask</Area>
<Layer>WebApiProxy</Layer>
<UserAgent>Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko</UserAgent>
<Uri>/tfs/Default/_apis/distributedtask/endpoint</Uri>
<Path />
<UniqueIdentifier>{A9646429-41CB-4137-A39A-D4E29EDDC389}</UniqueIdentifier>
<UserDefined />
<ExceptionType>System.Net.WebException</ExceptionType>
<Message>System.Net.WebException: The remote server returned an error: (401) Unauthorized. at System.Net.HttpWebRequest.GetResponse() at Microsoft.TeamFoundation.DistributedTask.Server.WebApiProxy.HttpRequestProxy.ExecuteRequest(HttpRequestMessage requestMessage, IList`1 sourceDefinitions, DataSource dataSource)</Message>
</Info>
</UserData>
</Event>
第二
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Team Foundation Server" Guid="{80761876-6844-47D5-8106-F8ED2AA8687B}" />
<EventID>0</EventID>
<Version>3</Version>
<Level>2</Level>
<Task>1</Task>
<Opcode>10</Opcode>
<Keywords>0x8000000000000001</Keywords>
<TimeCreated SystemTime="2016-04-12T09:09:21.717163200Z" />
<EventRecordID>59667</EventRecordID>
<Correlation ActivityID="{6AD40FD3-10BA-4A7E-B6D9-F6926072DAB4}" />
<Execution ProcessID="3376" ThreadID="6484" />
<Channel>Microsoft-Team Foundation Server/Debug</Channel>
<Computer>KTBSV021.KTB.local</Computer>
<Security UserID="S-1-5-21-2105344776-4230907741-261866850-3716" />
</System>
- <UserData>
- <Info TraceId="{00000001-0001-0001-0000-000000000000}" xmlns="http://schemas.microsoft.com/TeamFoundation/2010/Framework">
<Tracepoint>103200</Tracepoint>
<ServiceHost>{87670F79-6386-4363-9960-73B634419263}</ServiceHost>
<ContextId>10082</ContextId>
<ProcessName>w3wp</ProcessName>
<Username>KTB\tmpadmin</Username>
<VSID>{9E83242F-9944-4CBD-AF10-EF2D449A03B1}</VSID>
<Service>Web-Api</Service>
<Method>TaskDefinitionWebApiProxy.QueryEndpoint</Method>
<Area>DistributedTask</Area>
<Layer>TaskDefinitionWebApiProxy</Layer>
<UserAgent>Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko</UserAgent>
<Uri>/tfs/Default/_apis/distributedtask/endpoint</Uri>
<Path />
<UniqueIdentifier>{A9646429-41CB-4137-A39A-D4E29EDDC389}</UniqueIdentifier>
<UserDefined />
<ExceptionType>Microsoft.TeamFoundation.DistributedTask.WebApi.ServiceEndpointQueryFailedException</ExceptionType>
<Message>Microsoft.TeamFoundation.DistributedTask.WebApi.ServiceEndpointQueryFailedException: The remote server returned an error: (401) Unauthorized. at Microsoft.TeamFoundation.DistributedTask.Server.WebApiProxy.HttpRequestProxy.ExecuteRequest(HttpRequestMessage requestMessage, IList`1 sourceDefinitions, DataSource dataSource) at Microsoft.TeamFoundation.DistributedTask.Server.Controllers.TaskDefinitionWebApiProxyController.QueryEndpoint(TaskDefinitionEndpoint endpoint) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()</Message>
</Info>
</UserData>
</Event>
Fiddler报告以下请求失败:
POST http://localhost:8080/tfs/Default/_apis/distributedtask/endpoint HTTP / 1.1
•服务器上已启用Powershell Remote。
•服务帐户已添加到代理池中的角色。
这显然是一个安全问题。我们忘记或做错了什么?