2012-03-28 122 views
15

我有一个构建步骤,这是我的部署配置的一部分。我的同事告诉我构建失败:aspnet_client system_web 4_0_30319

我一直在持续收到此错误,当我跑这个生成步骤它在一个蓝色的月亮一次得手:

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,但没有权限。

我们在虚拟机上运行此版本。

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

非常感谢所有帮助。

感谢

回答

13

我有这个问题,部署为网站与msdeploy和TeamCity的。我解决它通过aspnet_client\system_web\4_0_30319

+0

使用FTP发布时,我有完全相同的问题。在删除阶段之后,上面的文件夹结构就在远程服务器上创建。我不知道为什么。它从来没有这样做过。我简单地删除了上面的文件夹,保持root完好无损,然后尝试再次发布,它工作。 – 2013-09-16 09:43:15

+0

工作正常,但你必须继续这样做,因为自动更新会反复添加文件夹。请参阅我的答案以获得一些永久性解决方案。 – MemeDeveloper 2014-06-20 11:40:43

+0

如果您执行“whatif”测试执行,Web部署会丢失此文件夹结构吗? – 2014-12-13 01:19:45

0

我没有使用TeamCity的从我的delete一个网站这些文件夹,但我觉得也有这个问题。我试图使用VS2010 WebDeploy部署到Discount ASP.NET。在阅读doglin和Dan发布的内容后,我发现可以通过选中“在目标上保留额外文件(不要删除)”框来解决此问题。这可能不适合每个人,但它对我有用。

0

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

9

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

  • 避免这种情况给部署用户提升权限(不适用于 显而易见的原因,一个很好的解决方案)
  • 文件夹结构添加到您的SC所以它得到 部署的部署,而不是试图删除它(不理想,但最简单的)
  • 停止自动Windows更新(不懂事)
  • 你也许可以做到 这样的事情 http://blog.richardszalay.com/2012/12/18/demystifying-msdeploy-skip-rules/ 忽略部署的文件夹(我没试过)
+1

我遇到过这种情况,最后做了第二个建议:在手动删除文件夹之后,我向SC添加了一个'aspnet_client \ system_web_4_0_30319 \ placeholder.txt',以便创建文件夹。我其实只是在文本文件中链接了这篇文章。同意这并不理想,但是一些ASP工具也不会自动运行,并将随机文件添加到部署的应用程序中。 – gregmac 2014-03-20 18:38:19

+0

@gregmac事实上,我认为这个文件夹的更新作为一个错误更新。它不应该发生。 – MemeDeveloper 2014-06-20 11:39:29

2

由于MemeDeveloper mentions in their answer,一个方式来解决这个是简单地忽略那个目录。事实上,这是最简单的修复方法,并且不需要向源代码控制库或构建输出添加任何内容。只需将以下内容添加到msdeploy的即可。EXE命令:

-skip:Directory="aspnet_client"

+0

谢谢,这个解决方案对我来说工作得很好:-) – 2016-06-21 09:29:26

+0

嗨!你在哪里做这个改变? – Patrick 2017-01-05 15:17:06

+0

@Patrick无论您的部署命令存储在哪里,例如构建应用程序,CI应用程序;无论是运行'msdeploy'命令。 – 2017-01-05 19:16:52