构建失败:aspnet_client \ system_web \ 4_0_30319

时间:2012-03-28 20:21:03

标签: msbuild teamcity

我有一个构建步骤,它是我的部署配置的一部分。我的同事告诉我,它曾在蓝色的月亮中工作过一次

当我运行此构建步骤时,我一直在不断地收到此错误:

Deleting dirPath (qa.comedy.net\aspnet_client\system_web\4_0_30319). [15:22:22]: 

[VSMSDeploy] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.\We
\Microsoft.Web.Publishing.targets(3588, 5): Web deployment task failed.((3/28/2012 3:22:22 PM) An error occurred when the request was processed on the remote computer.)

Attempt to perform an unauthorized operation on file '4_0_30319'.

似乎正在尝试删除该文件夹 aspnet_client \ system_web \ 4_0_30319,但没有权限。

我们在虚拟机上运行此构建。

有关如何解决此问题的任何建议?

非常感谢所有帮助。

由于

5 个答案:

答案 0 :(得分:13)

我将此问题部署为具有msdeploy和teamcity的站点。我通过从我的网站aspnet_client\system_web\4_0_30319

删除这些文件夹来解决这个问题

答案 1 :(得分:9)

是的,你可以删除这个文件夹,下一个部署也可以,但是下一个运行asp.net注册工具的windows更新作为安装的一部分,将把这个文件夹添加回IIS上的所有asp.net站点(带有不正确的权限) - 因此您的部署将再次失败。

可以避免这种情况
  • 为部署用户提供升级权限 (不是一个很好的解决方案 显而易见的原因)
  • 将文件夹结构添加到您的SC,以便它获得 部署而非部署尝试删除它 (不理想,但最简单)
  • 停止自动更新窗口 (不合理)
  • 你可能会这样做 这样的事情 http://blog.richardszalay.com/2012/12/18/demystifying-msdeploy-skip-rules/ 忽略部署中的文件夹 (我没试过)

答案 2 :(得分:3)

作为MemeDeveloper mentions in their answer,解决此问题的一种方法是简单地忽略该目录。实际上,这是最简单的修复,并且不需要向源代码控制存储库或构建输出添加任何内容。只需将以下内容添加到 msdeploy.exe 命令:

-skip:Directory="aspnet_client"

答案 3 :(得分:0)

我没有使用TeamCity,但我认为我还有这个问题。我试图使用VS2010 WebDeploy部署到Discount ASP.NET。在阅读了doglin和Dan发布的内容之后,我发现我可以通过选中“在目标上保留额外文件(不要删除)”框来解决此问题。这可能不是每个人的选择,但它对我有用。

答案 4 :(得分:0)

我在TeamCity中的WebDeploy期间遇到了同样的问题。我最终提升了WebDeploy帐户的权限,在该帐户下我执行WebDeploy任务。因此,该帐户有足够的权力删除这些文件夹(本地管理员角色)。