Web部署任务构建失败

SAV*_*SAV 81 visual-studio-2010 tfs2010

场景:

我成功设置了TFS2010 webdeploy任务解决方案.一切正常,直到部署任务出现问题为止.

解决方案有2个Web项目..这些项目配置为在构建时部署并将其发布到开发服务器.

有没有人知道构建中有什么问题(下面的信息)?

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
(3847): Web deployment task failed.
((4.8.2011 11:01:10) An error occurred when the request was processed on the remote computer.)
(4.8.2011 11:01:10) An error occurred when the request was processed on the remote computer. Unable to perform the operation. Please contact your server administrator to check authorization and delegation settings.
Run Code Online (Sandbox Code Playgroud)

如果有人需要,我可以提供更多信息.

buc*_*nic 202

通过TFS构建时遇到了同样的问题.当我尝试手动导入网站时,我收到了更多信息:"无法登录用户\ WDeployConfigWriter".

事实证明,当您安装Web部署时,它会设置两个本地帐户WDeployConfigWriter和WDeployAdmin.这些帐户的密码设置为过期.因此,重置Web服务器上的密码并设置为"永不过期".然后转到IIS中的管理服务委派.每个呈现的规则都有一个UserName字段.在WDeployAdmin或WDeployConfigWriter的位置右键单击并将凭据更新为新密码.

有关屏幕截图的完整说明,请访问:http://workinghardinit.wordpress.com/2011/07/18/wdeployconfigwriter-account-issues-trouble-shooting-web-deploy-2-0-with-lessons-learned/

  • 如果密码未更改,您只需将帐户WDeployConfigWriter和WDeployAdmin设置为"用户无法更改密码"和"密码永不过期".在我们的案例中"指定帐户的密码已过期." 是在新服务器安装的安全日志中. (20认同)
  • 尼斯.这是我的问题.我设置WDeployConfigWriter用户的密码不会过期,这解决了这个问题. (2认同)
  • 我能够在事件查看器中找到类似的错误(在应用程序和服务日志中的Server 2012上>> Microsoft Web Deploy).错误在详细信息中显示为:`Microsoft.Web.Delegation.DeploymentAuthorizationException:无法登录用户'.\ WDeployConfigWriter'.---> System.Runtime.InteropServices.COMException:此帐户的密码已过期 (2认同)
  • 我可以确认您不需要更改密码。根据@GoClimbColorado 的评论,设置“密码永不过期”足以解决问题而无需额外步骤 (2认同)

小智 34

您所要做的就是重新运行位于"C:\ Program Files\IIS\Microsoft Web Deploy V3\Scripts"中的脚本"AddDelegationRules.ps1"

这是首次安装Web部署时运行的脚本.这将重新创建任何缺少的代表团,重新设置两个WebDeployAdmin和WebDeployConfigWriter密码,并添加WebDeployAdmin回管理员组.

在重新运行脚本后,您仍然需要在每个帐户上设置密码不会过期.

  • 这在Server 2012 R2上立即生效 (5认同)
  • 这里也立即工作.完美答案! (4认同)

jma*_*zin 12

我们遇到了同样的问题 - 在我们的例子中,我们只使用MSDeploy(没有TFS).重置对于那些2个本地帐户密码(WDeployConfigWriterWDeployAdmin)解决了这个问题,因为他们的密码已经过期.我们尝试将密码策略更改为永不过期,但只有本地管理员才能这样做.

  • 这实际上只有一半的答案......为了防止密码过期,打开本地组管理器(运行`lusrmgr.msc`),用户(在侧栏中),双击帐户名,然后勾选"密码永不过期". (3认同)
  • 刚刚用这个答案自己解决了。不过,对我来说还有一个步骤...重置凭据后,需要进入IIS>管理服务委托**,然后选择每个规则并按**编辑**。如果规则使用* WDeployConfigWriter *帐户,请按** Set ... **按钮并重新输入刚更新的新凭据。 (2认同)

小智 6

运行此命令 lusrmgr.msc 双击用户并双击帐户名称,然后勾选“密码永不过期”。 在此输入图像描述

在此输入图像描述 完毕。