前几天,团队使用Azure Devops创建团队项目出了一个奇怪的错误:

TF400797: 作业扩展具有一个未处理的错误: Microsoft.TeamFoundation.Framework.Server.TeamFoundationServicingException: TF400711: 在 ProjectCreate 期间,对组件 ProjectCreate.TfsTeamBuild 执行维护步骤”Create the Team Project“时出错: 文件存在。 ---> System.IO.IOException: 文件存在。 在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.Path.InternalGetTempFileName(Boolean checkHost) 在 Microsoft.TeamFoundation.Build.Server.ProcessTemplate.UpdateCachedProcessParameters(IVssRequestContext requestContext, VersionSpec versionSpec) 在 Microsoft.TeamFoundation.Build.Server.TeamFoundationBuildService.AddProcessTemplates(IVssRequestContext requestContext, IList`1 processTemplates) 在 Microsoft.TeamFoundation.Build.Server.TeamFoundationBuildService.CreateBuiltInProcessTemplates(IVssRequestContext requestContext, String teamProjectUri, Boolean isUpgrade) 在 Microsoft.TeamFoundation.Build.Server.TeamFoundationBuildService.CreateTeamProject(IVssRequestContext requestContext, String projectUri, IList`1 permissions) 在 Microsoft.TeamFoundation.Server.Servicing.TFCollection.BuildStepPerformer.CreateTeamProject(ServicingContext servicingContext) 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationStepPerformerBase.PerformHostStep(String servicingOperation, ServicingOperationTarget target, IServicingStep servicingStep, String stepData, ServicingContext servicingContext) 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationStepPerformerBase.PerformStep(String servicingOperation, ServicingOperationTarget target, String stepType, String stepData, ServicingContext servicingContext) 在 Microsoft.TeamFoundation.Framework.Server.ServicingStepDriver.PerformServicingStep(ServicingStep step, ServicingContext servicingContext, ServicingStepGroup group, ServicingOperation servicingOperation, Int32 stepNumber, Int32 totalSteps) --- 内部异常堆栈跟踪的结尾 --- 在 Microsoft.TeamFoundation.Framework.Server.ServicingContext.FinishStep(Exception exception) 在 Microsoft.TeamFoundation.Framework.Server.ServicingStepDriver.PerformServicingStep(ServicingStep step, ServicingContext servicingContext, ServicingStepGroup group, ServicingOperation servicingOperation, Int32 stepNumber, Int32 totalSteps) 在 Microsoft.TeamFoundation.Framework.Server.ServicingStepDriver.PerformOperations(Int32 stepsToPerform) 在 Microsoft.TeamFoundation.Framework.Server.ServicingStepDriver.Execute(Int32 numberOfStepsToPerform) 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationServicingService.PerformServicingJob(IVssRequestContext requestContext, ServicingJobData servicingJobData, Guid jobId, DateTime jobQueueTime, Int32 numberOfStepsToPerform, ITFLogger logger) 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationServicingService.PerformServicingJobWithPotentialReRun(IVssRequestContext requestContext, ServicingJobData servicingJobData, Guid jobId, DateTime jobQueueTime, ITFLogger logger) 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationServicingService.PerformServicingJob(IVssRequestContext requestContext, ServicingJobData servicingJobData, Guid jobId, DateTime jobQueueTime, ITFLogger logger) 在 Microsoft.TeamFoundation.JobService.Extensions.Core.ServicingJobExtension.Run(IVssRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime jobQueueTime, String& resultMessage) 在 Microsoft.TeamFoundation.Framework.Server.JobRunner.ExecuteJob(IVssRequestContext requestContext);

对于这个异常提示:

TF400711: 在 ProjectCreate 期间,对组件 ProjectCreate.TfsTeamBuild 执行维护步骤”Create the Team Project“时出错: 文件存在

网上找了很多解决方案,大多是要删除%temp%下的文件,因为%temp%下的文件个数超过了65536个

但是删除%temp%下的文件后,问题依然没有解决。

此时,通过在Azure devops server上使用ProcessMonitor 分析TFS Job Agent发现了以下问题

可以发现TFS Job Agent实际访问的是

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp

通过删除这个路径下*.tmp文件。

问题得到了解决。整个问题的解决过程分享给大家。

周国庆

2022/11/13

 

Azure Devops Create Project TF400711问题分析解决的更多相关文章

  1. Azure DevOps Server(TFS) 客户端分析

    Azure DevOps Server(TFS) 是微软公司的软件协作开发管理平台产品,为软件研发.测试.实施提供全流程的服务.作为一款应用服务器产品,他的客户端是什么,在哪里下载客户端?我们在项目实 ...

  2. Github和Azure DevOps的代码同步

    [前言]Github和Azure DevOps都提供了Git代码库功能,那么有没有办法将两边的代码库进行同步呢,答案是肯定的.这里的操作我都是用Azure DevOps的Pipelines功能来完成的 ...

  3. 解决macOS git clone Azure DevOps提示身份认证失败问题

    macOS的终端输入git clone对应Azure DevOps的Git地址,紧接着输入正确的用户名和密码仍然会提示认证失败.解决的方法是安装微软的Git-Credential-Manager.由于 ...

  4. 【Azure DevOps系列】Azure DevOps生成代码覆盖率

    前言 在做单元测试时,代码覆盖率可以作为我们衡量代码质量的一个指标,本章我们将使用Azure DevOps帮助我们生成代码覆盖率的结果.Azure DevOps构建管道还是具有代码覆盖率选项的,在Vi ...

  5. Azure Data Factory(三)集成 Azure Devops 实现CI/CD

    一,引言 由于上一节文章内容过长,无法分享Azure Data Factory 的持续集成,持续发布.今天将着重介绍一下在使用 Azure DevOps Pipeline 发布,自动进行持续集成,并且 ...

  6. Azure DevOps 跨账号连接 Azure 服务

    一,引言 由于新申请的 Azure DevOps 账号中的私有项目不在享受托管代理提供的1800分钟的免费时间,又不想花钱付费,那我们只能另想版本解决没有并行作业的问题. -------------- ...

  7. Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

    一,引言 Azure Pipeline 管道是一个自动化过程:但是往往我们由于某种原因,需要在多个阶段之前获得批准之后再继续下一步流程,所以我们可以向Azure Pipeline 管道添加审批!批准流 ...

  8. Azure DevOps to Azure AppServices

    Azure DevOps is a complete solution for software development, from planning to building to deploymen ...

  9. 使用ML.NET + Azure DevOps + Azure Container Instances打造机器学习生产化

    介绍 Azure DevOps,以前称为Visual Studio Team Services(VSTS),可帮助个人和组织更快地规划,协作和发布产品.其中一项值得注意的服务是Azure Pipeli ...

随机推荐

  1. 获取Windows正在运行的窗口进程

    主要是获取Alt+Tab中展示的窗口 原理主要是获取窗口的样式来判断是否会在Alt+Tab中显示 具体代码如下 /// <summary> /// Alt+Tab 应用 /// </ ...

  2. k8s命令补全方法

    正常安装了k8s后,使用kubect 工具后接的命令不能直接tab补全 命令补全方法: yum -y install bash-completionsource /usr/share/bash-com ...

  3. 流媒体协议扫盲(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...

  4. 面试突击80:说一下 Spring 中 Bean 的生命周期?

    Java 中的公共类称之为 Bean 或 Java Bean,而 Spring 中的 Bean 指的是将对象的生命周期,交个 Spring IoC 容器来管理的对象.所以 Spring 中的 Bean ...

  5. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

  6. KingbaseES 多列分区的方法与性能

    前言 对于多列分区,可以选择单级多列的范围分区,也可以选择范围加子分区的方式.但二者在不同场景下对于性能是有差异的,这里的性能差异主要是分区裁剪引起的差异. 例子 创建两张分区表,采取不同的分区策略: ...

  7. 一文搞懂mysql索引底层逻辑,干货满满!

    一.什么是索引 在mysql中,索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录.通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列即可 ...

  8. 安装Alertmanager,nginx配置二级路径代理访问

    安装配置 Alertmanager wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertman ...

  9. 配置 jenkins 权限管理

    安装插件 更改认证方式 创建用户 创建角色并授权 给用户指定角色 新用户登录

  10. MySQL学习(1)---MySQL概述

    什么是数据库 概述 数据库(Database)是长期存储在计算机内有组织.大量.共享的数据集合.它可以供各种用户共享,具有最小冗余度和较高的数据独立性.数据库管理系统DBMS(Database Man ...