Web部署任务构建失败


86

场景:

我成功设置了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.

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


1
如果您是最近来这个问题,请查看最新答案
Sethi

Answers:


209

通过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/


21
如果未更改密码,则只需将帐户WDeployConfigWriter和WDeployAdmin设置为“用户不能更改密码”和“密码永不过期”。在我们的案例中,“指定帐户的密码已过期。” 在新服务器安装的安全日志中。
GoClimbColorado 2012年

2
真好 这就是我的问题。我将WDeployConfigWriter用户的密码设置为不过期,从而解决了该问题。
Stan DBA

2
我能够在事件查看器中找到类似的错误(在Server 2012上的“应用程序和服务日志>> Microsoft Web Deploy”中)。错误在详细信息中显示为:Microsoft.Web.Delegation.DeploymentAuthorizationException: Not able to log on the user '.\WDeployConfigWriter'. ---> System.Runtime.InteropServices.COMException: The password for this account has expired.
乔恩·埃格顿

仍然在2016年2月,我在Windows Server 2008R2上遇到了这个奇怪的问题,您的解决方案为我工作。
Ehsan Mirsaeedi '16

2
我可以确认您不需要更改密码。根据@GoClimbColorado的评论,设置“密码永不过期”就足以解决问题,无需采取额外的步骤
NickG

41

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

这是首次安装Web部署时运行的脚本。它将重新创建所有缺少的委托,重新设置WebDeployAdmin和WebDeployConfigWriter的密码,并将WebDeployAdmin添加回Administrators组。

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


您的建议对我有很大帮助。我找到并执行了带有“ poverShell”的脚本“ AddDelegationRules.ps1”。我正在使用2012 R2 Win Server和VS2017。
罗伯托·加塔

12

我们遇到了同样的问题-在我们的情况下,我们仅使用MSDeploy(不使用TFS)。重置这两个本地帐户(WDeployConfigWriterWDeployAdmin)的密码可以解决该问题,因为它们的密码已过期。我们试图将密码策略更改为永不过期,但是只有本地管理员可以这样做。


2
刚刚用这个答案自己解决了。不过,对我来说还有一个步骤...重置凭据后,需要进入IIS> Management Services委托,然后选择每个规则并按Edit。如果规则使用WDeployConfigWriter帐户,请按“设置...”按钮,然后重新输入刚更新的新凭据。
EvilDr 2014年

3
这实际上只是答案的一半...为了防止密码过期,请打开本地组管理器(运行lusrmgr.msc),用户(在边栏中),双击帐户名,然后勾选“密码永不过期”。
凯特2015年

我能够通过简单地取消选中User must change password at next login且没有实际更改密码的方式来解决此问题
Chris Schaller

3

运行此命令lusrmgr.msc双击用户,然后双击帐户名,然后勾选“密码永不过期”。 在此处输入图片说明

在此处输入图片说明 做完了


我检查了一下,但部署时
遇到

这对我有用!谢谢!
GisMofx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.