15

我正在将 MSDeploy 集成到我的构建过程中,并且在进行身份验证时遇到了问题。以下命令工作正常:

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=Administrator,password=secret -dest:package=c:\DeployTest\KPC.zip

但是,这不起作用:

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=kpcpublish,password=secret -dest:package=c:\DeployTest\KPC.zip

并产生错误:

Error Code: ERROR_USER_NOT_ADMIN
More Information: Connected to '192.168.0.11' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administ
rator on '192.168.0.11'.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN.
Error: The remote server returned an error: (401) Unauthorized.
Error count: 1.

我已按照上面链接中的说明以及我能找到的任何其他文档进行操作,它们几乎都说同样的话:

  1. 我创建了一个名为kpcpublish的帐户
  2. 我将此帐户添加到名为MSDepSvcUsers的组中- 哎呀,我什至将该帐户添加到管理员
  3. 我右键单击该站点并选择Deploy->Configure Web Deploy Publishing并将 kpcpublish 添加到列表中。它说:

.

Publish enabled for 'SERVER\kpcpublish' Granted 'SERVER\kpcpublish'
full control on 'C:\Website' Successfully created settings file
'C:\Users\Administrator\Desktop\SERVER_kpcpublish_KitchenPC.PublishSettings'

必须缺少一些步骤,但我无法弄清楚可能是什么。

更新:

使用该computerName属性的完整 HTTP 路径,我收到错误:

错误代码:ERROR_DESTINATION_NOT_REACHABLE 更多信息:无法连接到远程计算机(“192.168.0.3”)。在远程计算机上,确保安装了 Web Deploy 并且启动了所需的进程(“Web 管理服务”)。了解更多信息:http: //go.microsoft.com/fwlink/ ?LinkId =221672#ERROR_DES TINATION_NOT_REACHABLE。错误:无法连接到远程服务器错误:连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接的主机没有响应 192.168.0.3:8192 错误计数:1 .

我已经检查过,Web 管理服务确实在运行。

另一个更新:

我已经完全铺平了系统并从头开始重新设置。我什么都没做,只是安装了 IIS 角色,并确保检查管理工具下的“管理服务”,这是 WMSVC 运行所必需的。然后我安装了 Web PI,并安装了“托管服务提供商的推荐配置”,它将安装 Web Deploy 3.0。但是,我确实注意到安装它时出现了错误(我相信我上次也遇到了这个错误)。看起来像:

在此处输入图像描述

我还在这里附加了日志文件。

然后我尝试手动安装 Web Deploy 3.0,但是它说它已经安装了。接下来,我直接从http://www.iis.net/download/webdeploy下载了 MSI并在“修复”模式下运行它。这似乎奏效了。我还注意到 WMSVC 服务已启动并正在运行。所以这看起来不错。

尽管如此,MSDeploy 将无法连接。我认为这可能是某种防火墙问题,所以我在本地运行它。我尝试使用 HTTPS 和 HTTP 进行连接。HTTPS 给我一个错误,HTTP 只是在 2-3 分钟后超时。

HTTPS:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'f3a54096-adc4-4f54-9e4f-ad8fde12edb6' for connections to the remote server.
Error Code: ERROR_CERTIFICATE_VALIDATION_FAILED
More Information: Connected to the remote computer ("staging") using the specified process ("Web Management Service"), but could not verify the server's certifi
cate. If you trust the server, connect again and allow untrusted certificates.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED.
Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Error: The remote certificate is invalid according to the validation procedure.
Error count: 1.

HTTP:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=http://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'ebee66f0-08e5-4d9d-98ea-0c2e59784895' for connections to the remote server.
Error: Could not complete the request to remote agent URL 'http://staging:8172/msdeploy.axd'.
Error: The operation has timed out
Error count: 1.
4

6 回答 6

18

更新于 2016-03-07 - 注意:非管理员部署也需要?site=IIS_SITE_NAMEafter msdeploy.axd,否则连接被视为全局连接并需要管理员访问权限)

不知道最初是如何错过的,但你的问题是computerName参数。仅在使用 WMSVC 时才支持非管理员部署,您需要为其指定完整 URL。

尝试以下

msdeploy -verb:sync ^
  -source:appHostConfig="KitchenPC",computerName=https://192.168.0.3:8172/MsDeploy.axd,userName=kpcpublish,password=secret,authType=Basic ^ 
  -dest:package=c:\DeployTest\KPC.zip 

从文档

计算机名称将转换为默认的 Web 部署 URL。例如,computerName=Server1将变为http://Server1/MsDeployAgentService。如果远程服务使用自定义端口或 URL 运行,则必须指定完整 URL

根据安装说明

如果未安装 Web 管理服务,MSI 将不会安装 Web 管理服务处理程序组件;处理程序组件对于非管理员部署是必需的

(我找不到更明确的规范来源将 WMSVC 描述为非管理员部署的要求)

于 2012-10-20T03:42:25.410 回答
17

弄清楚了!

因此,似乎(至少在默认情况下)WMSVC 只侦听 HTTPS,而 HTTP 只会超时。但是,由于我的证书是自签名的,我不得不使用-allowUntrusted命令行选项。

差不多够了。我还必须像 Richard 最初建议的那样指定authType=Basic 。因此,总而言之,这是实际可以工作的 MSDeploy 命令行:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://192.168.0.3:8172/msdeploy.axd,authType=Basic,userName=Publish,password=secret -dest:package=c:\DeployTest\KPC.zip -allowUntrusted
于 2012-10-20T19:15:56.053 回答
2

配置 Web 部署后,我的服务器如下。我继续收到HTTP 404连接失败。五月份对我有用的是以下额外的努力......

  1. 卸载存在的所有以前版本的 Web Deploy。我什至不知道它们的存在。但是,以前的版本似乎与完成与最新 Web 部署服务的连接相冲突。较新的版本不要卸载他们的前辈。在最后一部分,我得到了HTTP 401.7 - File Extension Denied.
  2. 为了更好地衡量,对当前版本的 Web Deploy 进行了修复,目前Microsoft Web Deploy 3.6
  3. 为了更好地衡量,重新创建并导入我的 Visual Studio 2013 部署配置文件...
    1. 使用面板中目标网站的上下文菜单选项中可用publish settings fileConfigure Web Deploy Publishing对话框重新创建。(注意,当您按对话框条目中指定完整路径的文件时,将重新创建, ) DeployIIS ManagerConnectionspublish settings fileSetupSpecify a location to save the publish settings file
    2. 复制或以其他方式使publish settings fileVisual Studio 可用,然后Publish从项目的上下文菜单中选择,通过导入publish settings file.
于 2015-11-07T19:49:36.097 回答
1

尝试在目标机器上重新启动 wmsvc 服务

于 2014-10-24T10:16:55.117 回答
0

如上所述,请确保您通过 HTTPS 进行连接。如果您尝试以管理员身份连接,但不使用 SSL,则会收到以下错误:

错误代码:ERROR_USER_NOT_ADMIN

更多信息:使用 Web 部署代理服务连接到“主机”,但无法授权。确保您是“主机”的管理员。

(其中“主机”是您的服务器名称)

于 2015-07-13T17:45:15.197 回答
0

对我来说,问题是我的密码已过期......我在注销时注意到了它,然后尝试通过远程桌面重新登录。

于 2016-04-13T22:59:00.313 回答