9

团队,

到目前为止,TFS 2012 令人沮丧,我一直在排队构建并且构建服务器无法复制/删除到指定的文件夹。我已经在 Win Server 2008 R2 上安装了 TFS 2012。基本上该错误表明对目标文件夹的访问被拒绝,因此无法复制。TFS 管理控制台显示构建服务作为 LocalService 运行。我授予本地服务帐户对放置文件夹的完全控制权。我什至试图摆弄文件夹属性中的“共享”选项卡。无论如何都没有这样的网络,只有一台运行着所有 TFS 服务的机器。我什至尝试将放置文件夹放在 C 驱动器本身上,但没有成功。有人可以请一些光吗?我错过了什么?似乎是些微不足道的事情。

以下是异常详情。

异常消息:TF270016:将日志文件从“C:\Builds\1\Tfs_TeamProjectTrail\Tfs_Trial1_CI\Sources\Main\Tfs_Trial1\Tfs_Trial1.log”发布到“\localhost\d$\VD\Tfs_Trial1_CI\Tfs_Trial1_CI_20130309.21\日志'。详细信息:拒绝访问路径 '\localhost\d$\VD\Tfs_Trial1_CI\Tfs_Trial1_CI_20130309.21\logs'。(类型 PublishLogFileException) 异常堆栈跟踪:在 System.Activities.Statements.Throw.Execute(CodeActivityContext context) 在 System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 在 System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem .ExecuteBody(ActivityExecutor 执行器, BookmarkManager bookmarkManager, Location resultLocation)

内部异常详细信息:

异常消息:拒绝访问路径 '\localhost\d$\VD\Tfs_Trial1_CI\Tfs_Trial1_CI_20130309.21\logs'。(类型 UnauthorizedAccessException)异常堆栈跟踪:在 System.IO.Directory.InternalCreateDirectory(字符串 fullPath,字符串路径,对象 dirSecurityObj,布尔 checkHost)在 System.IO.Directory 的 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) Microsoft.TeamFoundation.Common.FileSpec.CopyFile(String oldPath, String newPath, Boolean overwriteExisting) 在 Microsoft.TeamFoundation.Build.Workflow.Activities.WindowsDropProvider.CopyDirectory(String sourceDirectory, String targetDirectory) 的 .InternalCreateDirectoryHelper(String path, Boolean checkHost)在 Microsoft.TeamFoundation.Build.Workflow.Activities.WindowsDropProvider.CopyDirectory(字符串 sourceDirectory,字符串 targetDirectory,

4

4 回答 4

11

这只是一个权限问题。

  • 首先以本地用户/域用户(如果适用)的身份运行构建服务并让它工作。
  • 创建适当的共享而不是使用默认的管理员共享 (d$)
  • 确保文件夹属性上的共享和安全选项卡都允许该用户的写入权限。
  • 错误日志显示“\localhost”,访问它的正确方法是“\\localhost”(这可能是一个stackoverflow编辑器问题,但不相关)

我目前没有时间写一个完整的答案,但我可以稍后扩展。

ProcMon 也是解决此类问题时使用的一个很好的程序。

我认为这是一个很好的起点。

于 2013-03-09T14:13:47.667 回答
3

只需确保 Drop directory 和 Build 服务对“本地服务”组具有完全权限。

于 2013-08-27T08:12:08.677 回答
2

运行tfs构建服务的默认帐户是nt authority\network service. 编译解决方案\项目后,正是这个用户尝试将位复制到构建共享。

因此,在您的构建共享上添加此帐户的权限。

于 2014-09-02T10:38:15.133 回答
0

[TFS2013] 当我关闭放置文件夹选项并删除路径时出现此错误。通过再次为构建配置中的输出文件指定放置文件夹 (UNC) 解决了该问题。

如果您根本没有放置文件夹,TFS 似乎很棘手,即使它为您提供了没有放置文件夹的选项。

于 2016-05-17T17:51:10.057 回答