63

我在使用 MsDeploy 将我的网站从 Visual Studio 发布到远程 IIS 时遇到问题。

我遇到了以下错误:

Microsoft.Web.Delegation.DeploymentAuthorizationException:无法登录用户“.\WDeployConfigWriter”。---> System.Runtime.InteropServices.COMException:用户名或密码不正确。(来自 HRESULT 的异常:0x8007052E)---内部异常堆栈跟踪结束---在 Microsoft.Web.Deployment.LogonUserHandle.LogonUser(字符串用户名,字符串域,字符串密码)

我试图在本地用户和组 (lusrmgr.msc) 中更改 WDeployConfigWriter 的密码。然后,我打开管理服务委派。我尝试在 WDeployConfigWriter 页面的编辑规则中设置凭据,但总是失败并显示消息“指定的密码无效。键入新密码”。

我在 Windows Server 2012 中工作。

任何帮助将不胜感激。谢谢!

4

8 回答 8

110

我也有这个,但细节略有不同

Not able to log on the user '.\WDeployConfigWriter'. 
Logon failure: the specified account password has expired. 

完全归功于此博客,问题在于 Web 部署安装程序会创建具有过期密码的用户,这些密码用于在部署期间提升权限。解决方法是:

  1. 在帐户WDeployAdminWDeployConfigWriter上 使用服务器管理器
    • 重置密码
    • 检查密码永不过期
    • 取消选中用户下次登录必须更改密码
  2. 使用 IIS -> 管理服务委派来重置这些帐户已配置为提升到特定用户的规则的密码
  3. 固定的!
于 2014-02-19T22:47:43.740 回答
56

解决此问题的最简单方法是:

  • 计算机管理 -> 本地用户和组 -> 用户
  • 右键单击-> WDeployAdmin上的属性
  • 取消选中“用户必须在下次登录时更改密码
  • 勾选“密码永不过期”
  • 对WDeployConfigWriter执行相同的操作
  • 完毕!

类似于@fiat 解决方案,但您实际上并不需要更改密码。

于 2015-11-04T10:58:14.620 回答
13

以下是简单的 CMD 命令:

WMIC USERACCOUNT WHERE "Name='WDeployConfigWriter'" SET PasswordExpires=FALSE
WMIC USERACCOUNT WHERE "Name='WDeployAdmin'" SET PasswordExpires=FALSE

它将部署用户密码设置为永不过期

于 2016-11-15T09:08:38.607 回答
1

WDeploy*用户不打算直接用作部署过程的一部分。相反,它们用于隐式提升权限以执行特定任务(修改 IISWDeployConfigWriter和 GAC 安装等WDeployAdmin)。

我建议专门为您的网站创建一个非管理员用户。您可以在 iis.net上的安装和配置 Web 部署中找到执行此操作的说明。如果您仍然遇到 WDeployConfigWriter 用户问题,您最好卸载 Web Deploy 并重新开始。

于 2013-10-14T02:49:54.783 回答
1

就我而言,我收到此错误是因为在安装 WebDeploy(3.6 / 4.)期间已创建WDeployConfigWriterWDeployAdmin,即使安装成功运行也是如此。

发现,密码复杂性的服务器规则更严格,生成的带有脚本的C:\Program Files\IIS\Microsoft Web Deploy V3\Scripts\AddDelegationRules.ps1规则不符合要求。所以我在 PowerShell 文件中编辑了 GenerateStrongPassword()并运行它。然后用户就创建成功了。

于 2020-03-23T15:03:12.350 回答
0

在某些情况下,设置“密码永不过期”是不够的。重新安装 webdeploy 将解决此问题。

解决此问题的另一种方法是为用户WDeployAdminWDeployConfigWriter设置新密码。 用户管理

下一步是在 IIS > 管理服务委派中为这些用户设置新密码。 管理服务委托

于 2020-10-22T12:36:05.463 回答
0

我在使用 Visual Studio 2017 时遇到了同样的问题,但出现了不同的错误消息。解决方案也取消选中(WDeployConfigWriter)“用户必须在下次登录时更改密码”

Publish failed
Publish has encountered an error.
Publish failed due to build errors. Check the error list for more details.

A diagnostic log has been written to the following location:
"C:\User\MyUser\AppData\Local\Temp\tmpXXXX.tmp"

日志文件的内容

06.04.2018 19:56:13
System.AggregateException: One or more errors occurred. ---> System.Exception: Publish failed due to build errors. Check the error list for more details.
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass40_0.<PublishAsync>b__2()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__108.MoveNext()
---> (Inner Exception #0) System.Exception: Publish failed due to build errors. Check the error list for more details.<---

===================
于 2018-04-06T20:29:01.100 回答
0

我在尝试更改管理服务委派中的密码时遇到了同样的问题,但并没有解决问题。事实证明,我必须将 WDeployConfigWriter 更改为其他用户(即管理员)将其更改回来,然后密码更改才生效

于 2017-09-11T07:13:51.813 回答