我已经安装了TFS2018 Express。它似乎已完全安装。
当我尝试访问其网站组件时,我得到Win32 0x80004005 Access is Denied错误。堆栈跟踪引用roslyn子子目录中的csc.exe程序。失败的命令提到另一个目录中的文件。
我见过其他线程说不以32位模式运行TFS。安装程序没有问我,我不知道如何告诉它以64位模式运行。
其他线程说我需要为目录添加读取和执行权限。哪个目录/目录?我已将它添加到整个网站目录及其子项以及引用的文件目录。
对于产品安装自身权限不足并且不告诉我们需要哪些权限,这似乎相当愚蠢。
错误消息告诉我哪个命令失败。
[Win32Exception(0x80004005):访问被拒绝]
[ExternalException(0x80004005):无法执行程序。正在执行的命令是:
“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目录和\ tfs(和子)目录到提到cmdline文件的域用户。错误消息没有变化。
我将上面的命令放入命令行并运行它。我收到此错误消息:
错误CS2011:打开响应文件'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ tfs \ af7cc5 \ 244hjudj.cmdline'时出错 警告CS2008:未指定源文件 错误CS1562:没有源的输出必须指定/ out选项。
有什么想法吗?
答案 0 :(得分:-1)
关键要素是程序是通过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位应用程序池中运行。你能做到吗? 确定" Microsoft Team Foundation Server应用程序池"和 " Microsoft Team Foundation Server消息队列应用程序池" 应用程序池配置为在64位进程中运行吗?
为此,您可以执行以下操作:
1)打开IIS管理器(inetmgr.exe)
2)选择“应用程序池”页面
3)选择" Microsoft Team Foundation Server应用程序池"点击 "高级设置......"右侧窗格中的链接。
4)确保启用32位应用程序设置为False。
5)对" Microsoft Team Foundation Server重复步骤3和4 消息队列应用程序池"
验证应用程序池配置为在64中运行 位进程,在IIS管理器中打开站点页面并找出ID Team Foundation Server站点(第二列)。通常是1或2。
之后,从提升的命令提示符执行以下命令:
C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_compiler.exe -errorstack -m / LM / W3SVC / 1 / root / tfs
将粗体1替换为Team Foundation Server网站的ID。
是否报告任何错误?
在我的情况下,应用程序池上的32位设置是正确的,并且aspnet_compiler.exe命令导致网站切换到64位模式。在那之后,一切都很好。