我正在将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.
我已按照上面链接中的说明和任何other docs I could find进行了操作,几乎所有人都说同样的事情:
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。错误:无法连接到远程服务器 错误:连接尝试失败,因为连接方没有 在一段时间后正确响应,或建立连接fa iled因为连接的主机无法响应192.168.0.3:8192 错误计数:1。
我已经检查过,Web管理服务确实正在运行。
另一个更新:
我已经完全铺设了系统,并从头开始重新设置。我没有做任何与众不同的事情,只是安装了IIS角色,并确保检查管理工具下的“管理服务”,这是WMSVC运行所必需的。然后我安装了Web PI,并安装了“Hosting Providers的推荐配置”,它将安装Web Deploy 3.0。但是,我确实注意到安装时出现了错误(我相信我最后一次也遇到了这个错误)。它看起来像:
我还附加了日志文件here。
然后我尝试手动安装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.
答案 0 :(得分:18)
( 2016-03-07更新 - 注意:?site=IIS_SITE_NAME
后非管理员部署也需要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
from the install instructions:
如果未安装Web管理服务,MSI将不会安装Web管理服务处理程序组件;处理程序组件是非管理员部署所必需的
(我找不到更明确的规范来源,将WMSVC描述为非管理员部署的要求)
答案 1 :(得分:16)
想出来!
所以,似乎(至少在默认情况下),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
答案 2 :(得分:1)
尝试在目标计算机上重新启动wmsvc服务
答案 3 :(得分:1)
配置Web部署我的服务器as follows之后。我继续遇到HTTP 404连接失败。在可能对我有用的是以下额外的努力......
HTTP 401.7 - File Extension Denied
。 Microsoft Web Deploy 3.6
publish settings file
Configure Web Deploy Publishing
小组中目标网站的Deploy
上下文菜单选项中提供的IIS Manager
对话框重新创建Connections
。 (注意,当您按publish settings file
作为在对话框条目中指定完整路径的文件Setup
时)时,将重新创建Specify a location to save the publish settings file
publish settings file
可用于Visual Studio并从项目的上下文菜单中选择Publish
,通过导入publish settings file
答案 4 :(得分:0)
如上所述,请确保您通过HTTPS进行连接。如果您尝试以管理员身份进行连接,但未使用SSL,则会收到以下错误:
错误代码:ERROR_USER_NOT_ADMIN
更多信息:使用Web部署代理服务连接到“主机”,但无法授权。确保您是“主持人”的管理员。
('host'是您的服务器名称)
答案 5 :(得分:0)
对我来说,问题是我的密码已过期...我在注销时注意到它,然后尝试登录远程桌面。