通过Web Deployment Project创建虚拟目录时访问被拒绝

时间:2020-03-06 15:02:37  来源:igfitidea点击:

我试图在TFS解决方案中使用(VS 2008)Web部署项目将网站部署到(TFS 2008)构建服务器,以运行基于Web的单元测试。
由于某种原因,我仍无法弄清楚,它无法创建虚拟目录:

使用程序集" C:\ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 \ Microsoft.WebDeployment.Tasks.dll"中的" CreateVirtualDirectory"任务。
任务" CreateVirtualDirectory"
初始化IIS Web服务器...
C:\ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 \ Microsoft.WebDeployment.targets(667,5):错误:访问被拒绝。
C:\ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 \ Microsoft.WebDeployment.targets(667,5):错误:
无法创建虚拟目录" abc"。
完成执行任务" CreateVirtualDirectory" -FAILED。

TFSService用户肯定是在TFS构建计算机(运行Windows Server 2008)上的Administrators组中。我不知道还有什么可能是错的。香港专业教育学院检查了事件日志,那里没有任何线索。我可以通过IIS控制台在该计算机上手动创建虚拟目录,而不会出现问题。

有什么想法可能是问题,或者是如何进一步诊断的建议?

解决方案

它必须具有权限...我们是否尝试将TFSService放入我们所在的相同组中?

TFS帐户是否以与用于连接IIS的帐户相同的特权运行?按照Craig的建议进行操作,然后将TFS帐户移至我们参与的组中。

我们确定该构建正在TFSService ID下运行,而不是在仅为构建设置的另一个ID下运行,并且哪个可能不在管理员组中?自从我主要进行单人开发以来,我所做的不只是玩自动构建,还记得当我看着它时设置了一个单独的构建ID。

我已经看到当IIS服务器未在默认端口上运行时会发生这种情况。我建议检查IIS以查看它是否在端口80上运行,以进一步诊断问题。

最终,我通过从TFS构建脚本中调用Web应用程序的_CopyWebApplication构建目标(在手动创建IIS虚拟目录之后)来使部署工作正常。
我还必须添加一个添加目标,以使链接文件在项目中也能被复制,因为内置的_CopyWebApplication目标不包含这些文件。