繁体   English   中英

创建后无法在构建/部署定义(vnext)中选择TFS 2015计算机组

[英]TFS 2015 machine groups cannot be selected in build/deployment definition (vnext) after creation

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。

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

显然,这是一个安全问题。 我们忘记或做错了什么?

您的问题有点像这篇文章 这种情况下 ,您可以尝试将解决方案添加到具有完全访问权限的C:\\ ProgramData \\ Microsoft \\ Crypto \\ RSA \\ MachineKeys的TFS服务帐户,以便该服务可以访问所有证书。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM