本文介绍了创建后无法在构建/部署定义(vnext)中选择TFS 2015机器组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们对TFS 2015安装有一个问题,从2010年开始升级。我们遇到了以下问题。这涉及到干运行,所以我们将所有内容安装在同一台服务器上,这不是我们所知道的首选方法。



•使用Windows Server 2012 R2安装新的虚拟服务器



•添加IIS功能



•安装的SQL Server 2014



•在服务器上安装的sharepoint基础2013



•在服务器上安装visual studio 2015



•安装所有必需的.NET目标框架



•安装了诸如MS Build tools 2015,Microsoft Visual Studio 2015代理程序等先决条件



将TFS2010备份还原到新的SQL Server



•安装的tfs 2015,并在设置中运行'升级'选项



•处理配置中的所有步骤,如添加构建控制器和构建代理

•卸载Vso代理并运行'ConfigureAgent.cmd'

•在TFS中配置代理池和队列



•添加了额外的团队项目集合。所以我们收集了2010年以前的旧版升级项目,再加上一些新的团队项目。



•管理团队项目,团队成员等。 b
$ b

•创建XAML构建定义,构建在服务器上正确完成,执行测试



但是,



如果我尝试使用部署模板创建一个新的(非XAML)构建定义(请参阅图像)。
当我们要选择测试机组/ Azure资源组时,例如选择测试位置时会出现此问题。选择列表为空。
所以我们使用管理选项添加机器组,机器组可用。但是,即使刷新(见图像),机器组的下拉列表仍然保持空白。



接下来,我们检查了事件日志。在刷新下拉列表中,以下条目在事件日志中进行:



首先:

   - < Event xmlns =http://schemas.microsoft.com/win/2004/08/events/event> 
- <系统>
< Provider Name =Microsoft-Team Foundation ServerGuid ={80761876-6844-47D5-8106-F8ED2AA8687B}/>
< EventID> 0< / EventID>
< Version> 3< / Version>
< Level> 2< / Level>
< Task> 1< / Task>
<操作码> 10< / Opcode>
<关键字> 0x8000000000000001< /关键字>
< TimeCreated SystemTime =2016-04-12T09:09:21.717163200Z/>
< EventRecordID> 59666< / EventRecordID>
<相关ActivityID ={6AD40FD3-10BA-4A7E-B6D9-F6926072DAB4}/>
<执行ProcessID =3376ThreadID =6484/>
< Channel> Microsoft-Team Foundation Server / Debug< / Channel>
<计算机> 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>
<跟踪点> 0< /跟踪点>
< ServiceHost> {87670F79-6386-4363-9960-73B634419263}< / ServiceHost>
< ContextId> 10085< / ContextId>
< ProcessName> w3wp< / ProcessName>
<用户名> KTB\tmpadmin< / Username>
< VSID> {9E83242F-9944-4CBD-AF10-EF2D449A03B1}< / VSID>
< Service> Web-Api< / Service>
<方法> TaskDefinitionWebApiProxy.QueryEndpoint< / Method>
< Area> DistributedTask< / Area>
< Layer> WebApiProxy< / Layer>
< UserAgent> Mozilla / 5.0(Windows NT 6.3; WOW64; Trident / 7.0; rv:11.0),如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:远程服务器返回错误:(401)未授权。在System.Net.HttpWebRequest.GetResponse()在Microsoft.TeamFoundation.DistributedTask.Server.WebApiProxy.HttpRequestProxy.ExecuteRequest(HttpRequestMessage requestMessage,IList`1 sourceDefinitions,DataSource dataSource)< / Message>
< / Info>
< / UserData>
< / Event>

第二:

 code>  - < Event xmlns =http://schemas.microsoft.com/win/2004/08/events/event> 
- <系统>
< Provider Name =Microsoft-Team Foundation ServerGuid ={80761876-6844-47D5-8106-F8ED2AA8687B}/>
< EventID> 0< / EventID>
< Version> 3< / Version>
< Level> 2< / Level>
< Task> 1< / Task>
<操作码> 10< / Opcode>
<关键字> 0x8000000000000001< /关键字>
< TimeCreated SystemTime =2016-04-12T09:09:21.717163200Z/>
< EventRecordID> 59667< / EventRecordID>
<相关ActivityID ={6AD40FD3-10BA-4A7E-B6D9-F6926072DAB4}/>
<执行ProcessID =3376ThreadID =6484/>
< Channel> Microsoft-Team Foundation Server / Debug< / Channel>
<计算机> 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>
<跟踪点> 103200< /跟踪点>
< ServiceHost> {87670F79-6386-4363-9960-73B634419263}< / ServiceHost>
< ContextId> 10082< / ContextId>
< ProcessName> w3wp< / ProcessName>
<用户名> KTB\tmpadmin< / Username>
< VSID> {9E83242F-9944-4CBD-AF10-EF2D449A03B1}< / VSID>
< Service> Web-Api< / Service>
<方法> TaskDefinitionWebApiProxy.QueryEndpoint< / Method>
< Area> DistributedTask< / Area>
<图层> TaskDefinitionWebApiProxy< / Layer>
< UserAgent> Mozilla / 5.0(Windows NT 6.3; WOW64; Trident / 7.0; rv:11.0),如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:远程服务器返回错误:(401)未授权。在Microsoft.TeamFoundation.DistributedTask.Server.WebApiProxy.HttpRequestProxy.ExecuteRequest(HttpRequestMessage requestMessage,IList`1 sourceDefinitions,DataSource dataSource)在Microsoft.TeamFoundation.DistributedTask.Server.Controllers.TaskDefinitionWebApiProxyController.QueryEndpoint(TaskDefinitionEndpoint endpoint)在lambda_method(Closure,Object ,Object [])在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor。  c__DisplayClass10。< GetExecutor> b__9(Object instance,Object [] methodParameters)在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync (HttpControllerContext controllerContext,IDictionary`2参数,CancellationToken cancelToken)从System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices处理抛出异常的前一个位置的堆栈跟踪结束。 TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task Task)在System.Web.Http.Controlle rs.ApiControllerActionInvoker。< InvokeActionAsyncCore> d__0.MoveNext()---从抛出异常的前一个位置的堆栈跟踪结束---在System.Runtime.CompilerServices上的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) System.Web.Http.Filters.ActionFilterAttribute中的.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)< CallOnActionExecutedAsync> d__5.MoveNext()---从System.Web抛出异常的前一个位置的堆栈跟踪结束。 Http.Filters.ActionFilterAttribute。< CallOnActionExecutedAsync> d__5.MoveNext()---从抛出异常的前一个位置的堆栈跟踪结束---在System.Runtime的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) System.Web.Http.Filters.ActionFilterAttribute中的.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)< ExecuteActionFilterAsyncCore> d__0.MoveNext()---从上一个位置起的堆栈跟踪结束w这个异常被抛出---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Web.Http.Filters.ActionFilterAttribute。< CallOnActionExecutedAsync> d__5.MoveNext()---从前一个位置抛出异常的堆栈跟踪结束 - 在System.Web.Http.Filters.ActionFilterAttribute。< CallOnActionExecutedAsync> d__5.MoveNext()---堆栈跟踪结束在系统抛出异常的前一个位置--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Web.Http.Filters.ActionFilterAttribute。< ExecuteActionFilterAsyncCore> d__0.MoveNext()---从抛出异常的前一个位置的堆栈跟踪结束---在System.Runti的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Web.Http.Filters.ActionFilterAttribute中的me.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)< CallOnActionExecutedAsync> d__5.MoveNext()---从系统抛出异常的前一个位置的堆栈跟踪结束---在系统.Web.Http.Filters.ActionFilterAttribute。< CallOnActionExecutedAsync> d__5.MoveNext()---从前一个位置引发异常的堆栈跟踪结束---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)中System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Web.Http.Filters.ActionFilterAttribute。< ExecuteActionFilterAsyncCore> d__0.MoveNext()---结束堆栈跟踪从以前的位置抛出异常---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Web.Http.Controllers.ActionFi lterResult。< ExecuteAsync> d__2.MoveNext()---从抛出异常的前一个位置的堆栈跟踪结束---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter 。System.Web.Http.Filters.AuthorizationFilterAttribute中的.HandleNonSuccessAndDebuggerNotification(任务任务)。< ExecuteAuthorizationFilterAsyncCore> d__2.MoveNext()---在System.Runtime.CompilerServices中抛出异常的前一个位置的堆栈跟踪结束。 System.Web.Http.Filters.AuthorizationFilterAttribute上的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)上的TaskAwaiter.ThrowForNonSuccess(任务任务)。< ExecuteAuthorizationFilterAsyncCore> d__2.MoveNext()---从前一行的堆栈跟踪结束抛出异常的位置---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAn dDebuggerNotification(任务任务)在System.Web.Http.Controllers.ExceptionFilterResult。< ExecuteAsync> d__0.MoveNext()< / Message>
< / Info>
< / UserData>
< / Event>

Fiddler报告是以下请求失败:



POST HTTP / 1.1



•服务器上已启用Powershell Remote。



•服务帐户已经添加到代理池中的角色。



这显然是一个安全问题。我们忘记了还是做错了?

解决方案

您的问题有点像。您可以在这种情况下,将TFS服务帐户添加到C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys,具有完全访问权限,以便服务可以访问所有证书。



但首先,尝试重新部署代理,您的帐户应该作为团队项目集合管理员或代理池添加管理员。


We have a problem with a TFS 2015 installation, an upgrade from 2010. We ran into the following issue. This concerns a dry run, so we install everything on the same server, which is not a prefered method, we know.

• Installed new virtual server with Windows Server 2012 R2

• Added IIS feature

• Installed SQL server 2014

• Installed sharepoint foundation 2013 on the server

• Installed visual studio 2015 on the server

• Installed all the necessary .NET target frameworks

• Installed the prerequisites like MS Build tools 2015, Agents for Microsoft Visual Studio 2015

• Restored TFS2010 backups to new SQL server

• Installed tfs 2015 and ran the ‘Upgrade’ option in the setup

• Processed all the steps in configuration, like adding a build controller and build agent

• Dowloaded the Vso agent and ran the ‘ConfigureAgent.cmd’

• Configured the agent pool and queue in TFS

• Added an extra collection of team projects. So we have a collection of legacy upgraded projects from 2010, plus a collection of new team projects

• Administered the team projects, team members, etc.

• Created a XAML build definition, builds are done correctly on the server, tests are performed

However,

If I try to create a a new (non XAML) build definition using the deployment template (see images).The problem occurs when we want to select a "Test Machine Group / Azure Resource Group", for instance when selecting the location of testing. The select list is empty.So we added machine groups using the ‘Manage’ option, and the machine group is available. However the dropdown list with machine groups stays empty, even after refresh (see images).

Next we checked the event logs fort his issue. On a refresh of the dropdownlist the following entries are made in the event log :

First :

- <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>

Second:

- <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 reports it is the following request is failing :

POST http://localhost:8080/tfs/Default/_apis/distributedtask/endpoint HTTP/1.1

• Powershell Remote has been enabled on the server.

• The service account has been added to the role in the agent pool.

It is obviously a security issue. What are we forgetting or doing wrong ?

解决方案

Your issue is kinda like this post. You may try the solution in this case to add TFS service account to C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys with full access so that the service can access all the certificates.

But first of all, try to re-deploy the agent with your account that should have been added as a team project collection administrator or an agent pool administrator.

这篇关于创建后无法在构建/部署定义(vnext)中选择TFS 2015机器组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-24 11:53