在新安装的TFS2018 Express上,0x80004005访问被拒绝。无法执行roslyn\csc.exe

在新安装的TFS2018 Express上,0x80004005访问被拒绝。无法执行roslyn\csc.exe,tfs,tfs-2018,Tfs,Tfs 2018,我已经安装了TFS2018 Express。它似乎已经完全安装好了 当我尝试访问其网站组件时,我得到Win32 0x80004005访问被拒绝错误。堆栈跟踪引用roslyn子目录中的csc.exe程序。失败的命令提到另一个目录中的文件 我见过其他线程说不要在32位模式下运行TFS。安装程序没有问我,我不知道如何告诉它在64位模式下运行 其他线程说我需要向目录添加读取和执行权限。哪个目录?我已经将其添加到整个网站目录及其子目录以及引用的文件目录中 这似乎是相当愚蠢的产品安装本身没有足够的权限,而不

我已经安装了TFS2018 Express。它似乎已经完全安装好了

当我尝试访问其网站组件时,我得到Win32 0x80004005访问被拒绝错误。堆栈跟踪引用roslyn子目录中的csc.exe程序。失败的命令提到另一个目录中的文件

我见过其他线程说不要在32位模式下运行TFS。安装程序没有问我,我不知道如何告诉它在64位模式下运行

其他线程说我需要向目录添加读取和执行权限。哪个目录?我已经将其添加到整个网站目录及其子目录以及引用的文件目录中

这似乎是相当愚蠢的产品安装本身没有足够的权限,而不告诉我们需要哪些权限

错误消息告诉我什么命令失败了

[Win32Exception (0x80004005): Access is denied]

[ExternalException (0x80004005): Cannot execute a program.  The command being executed was:

"d:\Program Files\Microsoft Team Foundation Server 2018\Application Tier\Web Services\bin\roslyn\csc.exe" /shared /keepalive:"10" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\tfs\af7cc5\244hjudj.cmdline"
为了进行测试,在与之斗争了一段时间之后,我将roslyn目录以及提到cmdline文件的域用户的TFS和子目录的完全控制权交给了它。错误消息中没有更改

我将上面的命令放入命令行并运行它。我收到以下错误消息:

error CS2011: Error opening response file 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\tfs\af7cc5\244hjudj.cmdline'
warning CS2008: No source files specified
error CS1562: Outputs without source must have the /out option specified.
有什么想法吗?

请查看对我有用的答案

关键是该程序是通过iso安装程序安装的,它显然导致网站在需要64位模式时以32位模式运行

这导致网站重新编译为64位模式:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary下的文件 ASP.NET文件由ASP.NET编译器创建。很奇怪 错误消息提到

C:\Windows\Microsoft.NET\Framework\v4.0.30319而不是

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

因为TFS必须在64位应用程序池中运行。你能做些什么吗 当然,微软Team Foundation服务器应用程序池和 微软Team Foundation服务器消息队列应用池 是否将应用程序池配置为在64位进程中运行

为此,您可以执行以下操作:

1打开IIS管理器inetmgr.exe

2选择应用程序池页面

< P> 3选择微软Team Foundation服务器应用程序池单击 高级设置。。。右窗格上的链接

4确保启用32位应用程序设置为False

5为微软Team Foundation服务器重复步骤3和4 消息队列应用程序池

一旦您验证应用程序池配置为在64中运行 bit进程,在IIS管理器中打开“站点”页,并查找 Team Foundation Server站点第二列。通常是1或2

之后,从提升的命令提示符执行以下操作:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet\u compiler.exe -errorstack-m/LM/W3SVC/1/root/tfs

将Brand 1替换为Team Foundation Server站点ID。

它是否报告任何错误

在我的例子中,应用程序池上的32位设置是正确的,aspnet_compiler.exe命令导致网站切换到64位模式。在那之后,一切都很好