msbuild - msdeploy 错误 ERROR_USER_UNAUTHORIZED : We

Web 部署任务失败。错误 ERROR_USER_UNAUTHORIZED

我们使用 Tfs Build Automation 和 msdeploy 在远程计算机上发布 Web 应用程序。

在“Visual Studio Build”步骤中,我们在“MSBuild Arguments”上设置了这个参数: /p:DeployOnBuild=true;PublishProfile=myProfile;AllowUntrustedCertificate=true;UserName=$(用户名);Password=$(密码)

构建完成后,我们得到这个错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4276,5):错误 ERROR_USER_UNAUTHORIZED:Web 部署任务失败。 (使用 Web 管理服务连接到远程计算机(“MySERVER”),但无法授权。确保您使用的用户名和密码正确,您要连接的站点存在,并且凭据代表有权访问该网站的用户。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED。)

我确定用户名和密码是正确的,并且用户是服务器(MySERVER)上的管理员。

我检查了 IIS 上的管理服务日志,发现了一些重要的东西: 构建代理的用户名 (tfsadmin) 发送到 IIS 上进行部署,而不是我在构建变量中设置的用户/密码。

字段:日期时间 s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc- win32-status 耗时

2018-01-03 09:29:02 MYSERVERIP HEAD/msdeploy.axd site=MySiteName 8172 - MyBuildServerIP - - 401 2 5 1322 2018-01-03 09:29:02 MYSERVERIP HEAD/msdeploy.axd site=MySiteName 8172 tfsadmin MyBuildServerIP - - 401 1 1326 86

更新 1: 我添加了更多信息,如您在下面的构建日志中所见,在 msBuildArgs 中密码为空(而不是 ********)!

网络部署版本:3.6 TFS 版本:2015.1 目标机器(MySERVER):Windows 2012 R2 IIS 版本:8.5 “tfsadmin”用户具有目标服务器 (MyServer) 的本地管理员和目标 IIS 站点上的 IIS 管理员权限。

构建日志:

2018-01-06T06:37:19.9298797Z Starting task: Build solution $/MyProject/MySolution.sln
2018-01-06T06:37:20.0529203Z Executing the powershell script: D:\Agents\Agent-01\tasks\VSBuild\1.0.16\VSBuild.ps1
2018-01-06T06:37:20.3760645Z ##[debug]Entering script VSBuild.ps1
2018-01-06T06:37:20.3790648Z ##[debug]vsLocation = 
2018-01-06T06:37:20.3800653Z ##[debug]vsVersion = 14.0
2018-01-06T06:37:20.3810663Z ##[debug]msBuildLocation = 
2018-01-06T06:37:20.3820668Z ##[debug]msBuildVersion = 
2018-01-06T06:37:20.3830692Z ##[debug]msBuildArchitecture = x64
2018-01-06T06:37:20.3840679Z ##[debug]msBuildArgs = /p:DeployOnBuild=true;PublishProfile=myProfile;AllowUntrustedCertificate=true;UserName=tfsadmin;Password=;Pass2=********
2018-01-06T06:37:20.3840679Z ##[debug]solution = D:\Agents\Agent-01\_work\2\s\MyProject\MySolution.sln
2018-01-06T06:37:20.3860721Z ##[debug]platform = 
2018-01-06T06:37:20.3870700Z ##[debug]configuration = 
2018-01-06T06:37:20.3880727Z ##[debug]clean = true
2018-01-06T06:37:20.3890697Z ##[debug]restoreNugetPackages = true
2018-01-06T06:37:20.3890697Z ##[debug]logProjectEvents = true
2018-01-06T06:37:20.4010877Z ##[debug]Loading module from path 'D:\Agents\Agent-01\agent\worker\Modules\Microsoft.TeamFoundation.DistributedTask.Task.Internal\Microsoft.TeamFoundation.DistributedTask.Task.Internal.dll'.
...

谁能帮帮我?

最佳答案

您是正确的,最终使用了错误的用户名和密码来验证请求。运行命令 net helpmsg 1326(1326 是您提供的日志条目中的 sc-win32-status 值)会产生“用户名或密码不正确。

同样有趣的是在此之前记录的请求/响应。根据 TechNet,401 的子状态值 2 表示“由于服务器配置支持备用身份验证方法,访​​问被拒绝。” .并且 net helpmsg 1322 产生“不允许此操作,因为它可能导致管理帐户被禁用、删除或无法登录。

  1. 查看(或重新查看)https://learn.microsoft.com/en-us/iis/publish/using-web-deploy/configure-the-web-deployment-handler 中的说明
  2. 如果您的部署仍然无法正常工作,请查看 Microsoft's Troubleshooting Common Problems with Web Deploy .

关于msbuild - msdeploy 错误 ERROR_USER_UNAUTHORIZED : Web deployment task failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48075599/

相关文章:

php - Discord API 错误 #40001 未经授权

android - 我如何从 firebase 实时数据库中获取所有数据

javascript - 未知提供者 : $cookies angularjs

java - Spring AMQP - channel 交易与发布者确认

python - django-crontab 不执行预定作业

macos - 如何在 Mac 终端中使用 SoX 从文本文件中修剪特定时间的音频文件?

android - 有时使用 AlarmManager 不会触发警报

amazon-web-services - API 网关 - 请求过多异常 (429)

encryption - 如何在 CefPython 中添加 MP4(专有编解码器)支持

javascript - 尝试在 javascript 中捕获未定义的检查