通过Web部署项目创建虚拟目录时拒绝访问

时间:2008-10-02 19:00:47

标签: asp.net iis tfs windows-server-2008 web-deployment-project

我正在尝试在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 Build计算机(运行Windows Server 2008)上的Administrators组中。我不知道还有什么可能是错的。我检查了事件日志,那里没有线索。我可以通过IIS控制台在该计算机上手动创建虚拟目录,没有任何问题。

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

5 个答案:

答案 0 :(得分:1)

它必须是权限...您是否尝试将TFSService放在您所在的组中?

答案 1 :(得分:1)

TFS帐户是否在与用于连接IIS的帐户相同的权限下运行?按照Craig的建议,将TFS帐户移动到您参与的组中。

答案 2 :(得分:0)

您确定构建是在TFSService ID下运行而不是在为构建设置的另一个ID下运行,而这可能不在管理员组中吗?我没有做过更多只是玩自动构建,因为我主要进行独奏开发,但我记得在我看这个时设置一个单独的构建ID。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我最终通过从我的TFS构建脚本调用Web应用程序的_CopyWebApplication构建目标(手动创建IIS虚拟目录之后)来设法实现部署。 我不得不添加一个额外的目标来获取要复制的项目中的链接文件,因为内置的_CopyWebApplication目标不包括那些。