【问题标题】:MSDeploy triggers 401 Access denied error when trying to synch a site尝试同步站点时,MSDeploy 触发 401 Access denied 错误
【发布时间】:2009-03-05 16:37:56
【问题描述】:

我尝试将 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

这是错误:

致命:请求远程代理 URL 'http://backup-09/MSDEPLOYAGENTSERVICE' 失败了。

致命:远程服务器返回错误:(401) Unauthorized。 死亡人数:1

  • 我确实将 msdeploy/cmd 作为 管理员。
  • 我确实尝试访问 http://backup-09/MSDEPLOYAGENTSERVICE, 它要求我的权限,我 输入上面的凭据,它 工作(显示空站点)。
  • 这是 MSDeploy 的 Beta 2

谁能帮帮我?

我现在什至为所有服务器设置了域控制器......仍然是同样的问题,无论我是作为域控制器登录,提供本地帐户,所有变体都会触发 401

【问题讨论】:

标签: iis ntlm msdeploy msdeployserviceagent


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我面临同样的问题,刚刚尝试过,但现在我不仅收到错误The remote server returned an error: (401) Unauthorized,而且还看到An unsupported response was received. The response header 'MSDeploy.Response' was '' but 'v1' was expected. 有什么想法吗?应该注意的是,这是我第一次在这台机器上尝试这个,以及在任何安装了 Visual Studio 2010 的机器上(所以它可能与我从technet.microsoft.com/en-us/library/dd569059%28WS.10%29.aspx 得到的 MSDeploy 冲突)
    【解决方案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

    【讨论】:

      【解决方案4】:

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

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

      在我的例子中,问题是通过在正在部署的机器上授予部署帐户管理员权限来解决的。

      (我看到您使用的是一个名为 Administrator 的帐户,因此您可能不是这种情况 - 但我有同样的症状,所以还是想发帖)。

      【讨论】:

      • FWIW,我看到了问题,我的帐户是目标计算机上的管理员。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        我确实找到了解决方案。对我来说添加

        <AuthType>NTLM</AuthType>
        

        .pubxml 文件中的行修复了该问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-02-28
          • 2011-11-17
          • 1970-01-01
          • 2020-05-06
          • 2017-09-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多