尝试同步站点时,MSDeploy触发401 Access denied错误

时间:2009-03-05 16:37:57

标签: iis ntlm msdeploy msdeployserviceagent

我尝试将IIS站点从Win2003服务器推送/同步到另一台服务器。

这是我的命令:

msdeploy -verb:sync -source:metakey = lm / w3svc / 68512112 -dest:metakey = lm / w3svc / 68512112,computername = backup-09,username = Administrator,password = PASSWORD -whatif> msdeploysync.log

我也试过以下

msdeploy -verb:sync -source:metakey = lm / w3svc / 68512112 -dest:metakey = lm / w3svc / 68512112,computername = backup-09,username = BACKUP-09 \ Administrator,password = PASSWORD -whatif> msdeploysync.log

我也试过

msdeploy -verb:sync -source:metakey = lm / w3svc / 68512112 -dest:metakey = lm / w3svc / 68512112,computername = backup-09,username = Administrator @ BACKUP-09,password = PASSWORD -whatif> msdeploysync.log

这是错误:

致命:请求远程代理网址“http://backup-09/MSDEPLOYAGENTSERVICE” 失败。

致命:远程服务器返回错误:(401)未经授权。 致命数:1

  • 我确实运行了msdeploy / cmd 管理员。
  • 我确实尝试过访问 http://backup-09/MSDEPLOYAGENTSERVICE, 它要求我的许可,我 它输入了上面的凭证 工作(显示空站点)。
  • 这是MSDeploy的Beta 2

任何人都可以帮助我吗?

我现在甚至为所有服务器设置了一个域控制器...仍然存在相同的问题,无论我是以域控制器身份登录,还是提供本地帐户,所有变体都会触发401

6 个答案:

答案 0 :(得分:5)

请注意,Web Deploy 2.0(甚至刷新)中存在一个错误,该错误不允许管理员组内的用户进行身份验证。只有域管理员和管理员帐户本身才能对Web部署进行身份验证。请参阅以下页面上的ERROR_USER_NOT_ADMIN错误代码:http://learn.iis.net/page.aspx/1023/web-deploy-error-codes/

答案 1 :(得分:3)

默认情况下,Msdeploy似乎使用NTLM身份验证,即使存在userName和密码也是如此。要启用“userName”和“password”的正确处理,请将以下内容附加到相关源:或dest:parameters:“,authType = basic”

答案 2 :(得分:3)

我收到此错误是因为启用了UAC(Windows Server 2008)。

需要关闭UAC以进行远程连接:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy=1

此密钥帮助我在另一台服务器上(Windows Server 2012):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server\WindowsAuthenticationEnabled=1

Michael12345在此建议:https://stackoverflow.com/a/15059759/991267

答案 3 :(得分:0)

这是一个非常古老的问题,但我可能已经找到了答案。

我收到401 Unauthorized错误消息,但仍然可以使用MSDeploy调用中指定的帐户登录,如问题中所述。

在我的情况下,通过在部署的计算机上提供部署帐户管理员权限来解决问题。

(我看到你使用的是一个名为Administrator的帐户,所以这可能不是你的情况 - 但我有相同的症状,所以想要发帖)。

答案 4 :(得分:0)

我刚刚遇到过401和ERROR_USER_NOT_ADMIN。在我的情况下,问题是我使用主机文件中设置的主机名(也在目标计算机上的主机文件中)设置computerName参数-dest:。 NTLM试图将此主机名视为用户名的域名部分(例如hostname\userName)。将其更改为IP地址或实际机器名称可解决问题。

答案 5 :(得分:0)

之前我没有遇到此类错误,但在Visual Studio 2015 Update 3中创建新的ASP.NET Core应用程序时,默认发布配置文件不起作用。

我确实找到了解决方案。为我添加

<AuthType>NTLM</AuthType>
.pubxml文件中的

行解决了问题。