msdeploy(Web部署)失败,出现401 auth问题

时间:2010-12-13 11:58:23

标签: visual-studio-2010 iis msdeploy webdeploy msdeployserviceagent

我正在尝试安装msdeploy并进行设置。我已经在Web服务器上安装了远程服务,但我的所有测试都给了401 unauthorised error。服务器是Windows 2008 R2。

我正在测试一个非常简单的msdeploy命令:

msdeploy -verb:dump -source:contentPath=c:\inetpub\wwwroot\MyApp,computerName=<IP HERE>,userName=Domain\msdeploy,password=MyPassword

错误:

Error: Object of type 'contentPath' and path 'c:\inetpub\wwwroot\MonApp' cannot be created.
Error: Remote agent (URL http://<IP HERE>/MSDEPLOYAGENTSERVICE) could not be contacted.  Make sure the remote agent service is installed and started on the target computer.
Error: An unsupported response was received. The response header 'MSDeploy.Response' was '' but 'v1' was expected.
Error: The remote server returned an error: (401) Unauthorized.
Error count: 1.

我创建了一个名为msdeploy的用户,并将其添加到服务器上的本地管理员组。

我查了一下:

  • 该服务已正确安装且我已启动
  • 不使用用户名的域名部分,并添加authType = Basic
  • 的各种组合
  • 授予每个人对该文件夹的完全权限
  • 在IIS中允许远程连接
  • 为contentPath和iisApp的“msdeploy”用户添加了管理服务委派规则(松散地基于阅读this
  • 尝试使用不同的管理员帐户,我将RDC用于服务器......
  • 尝试使用不同的contentPaths和不同的msdeploy命令
  • 创建了一个特定帐户,并将该帐户添加到IIS_Users。将该用户添加到我的网站“IIS Manager权限”,并为所有提供商设置“管理服务委派”。

5 个答案:

答案 0 :(得分:56)

答案 1 :(得分:6)

对我来说,发布工作在Visual Studio中,但是当我运行.deploy.cmd脚本时它不起作用。

通过在<UseMsdeployExe>true</UseMsdeployExe>中设置.csproj,可以强制VS使用msdeploy.exe而不是MSBuild任务。然后通过调高日志记录级别(工具&gt;选项&gt;项目和解决方案&gt;构建和运行&gt; MSBuild项目构建输出详细程度),您可以看到VS使用的命令行。

.deploy.cmd的问题是:

  • 我的IIS用户只拥有该网站的权限,因此我需要?site=<SITENAME>中的computerName
  • 我在AuthType='Basic'参数中需要-dest:

答案 2 :(得分:3)

我们遇到了与你类似的问题。

为此,您需要在服务中启动远程代理服务。 我们使用了PC名称,因为IP地址出错了。因此,请尝试使用电脑名称,用户名和密码。

答案 3 :(得分:1)

最后,我从来没有对我的部署用户帐户遗漏了哪些权限 - 但发现如果我使用了计算机管理员帐户,部署就会成功。目前我正在使用管理员帐户进行部署。

向Kev致敬,感谢您提供有关设置ms部署2的精彩内容和信息摘要:)

答案 4 :(得分:0)

为了它的价值。发布对我有用,然后有一天我遇到了同样的问题(401未经授权的错误)重启VS2012解决了这个问题。希望我在尝试其他所有解决方案之前尝试过。