通过 MSDeploy.exe 从 WMSvc 获取 404
Posted
技术标签:
【中文标题】通过 MSDeploy.exe 从 WMSvc 获取 404【英文标题】:Getting a 404 from WMSvc via MSDeploy.exe 【发布时间】:2012-12-13 23:46:24 【问题描述】:从 Windows 8 到安装并运行 Web 管理服务的 Windows Server 2012 (IIS 8),我可以使用 W8 机器上的 IIS 管理器来管理远程服务器,但是当我执行以下命令时,我从 WMSvc 获得 404.7:
msdeploy.exe" -verb:dump -source:contentPath=c:\InetPub\wwwroot,computerName=https://uktnws01:8172/MsDeploy.axd,userName=corp\administrator,password=WMSvcIsCrap,authType=Basic -allowUntrusted
我尝试了各种组合和参数。我可以远程登录到那个端口,我知道它是开放的。
我只是从 Windows 中删除管理服务功能并重新启动。我会给自己倒一杯苏格兰威士忌,然后做点零食。同时,如果您有任何想法,请分享。
在下方加入我的实时博客并关注行动。
更新 1
删除管理服务后,我现在得到
错误:无法连接到远程服务器错误:无连接 可以因为目标机器主动拒绝它 192.168.2.22:8172 错误计数:1。
第二行是一条新消息!哇哦。
更新 2
好的,所以现在情况越来越糟了。重新安装后,远程 IIS 控制台会在证书上发出警报,然后说,
服务器不接受远程连接。
但我认为这是因为我可能没有重新启用远程管理,除了安装该死的东西。
更新 3
启用远程管理后,远程 IIS 再次工作,但 404 已返回。只是为了 SEO 的利益,这里是完整的错误:
Error Code: ERROR_DESTINATION_NOT_REACHABLE More Information: Could not connect to the remote computer ("uktnws01"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started. Learn more at http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE.
Error: The remote server returned an error: (404) Not Found.
Error count: 1.
更新 4
尝试通过 *** 到客户端对另一台 Web 服务器执行相同的命令,这很有效!看起来 IIS 在我的 2012 年新版本中得到了改进。
更新 5
我为 WMSvc 启用了失败的请求跟踪,并发现 404.7 来自 RequestFilteringModule 模块。根据文档,404.7 是“文件扩展名被拒绝”。
http://www.iis.net/configreference/system.webserver/security/requestfiltering
为 .axd 文件添加明确的服务器规则并没有帮助。看到这个模块很有趣,因为它对 URL 长度和内容大小施加了限制。您能想象在 IIS 托管的 WCF 应用程序中解决此问题!哈哈。我真的哭了。
更新 6
我正在删除请求过滤,这意味着还要删除 ASP.NET 和其他各种东西。他们需要一键重新安装 Windows 功能和依赖项,因为我们编写了不可靠的软件选项。
更新 7
我重新安装了所有东西,然后一个名叫 Richard 的澳大利亚人突然出现并完全解释说,Web Deploy 实际上并不是 WMSvc 标准的一部分,即使在 IIS 8 上也是如此,我需要安装 Web Deploy。
所以我愿意。然后我禁用了它安装的另一部分 MsDepSvc(我认为它是整个 Web 部署),因为它占用了端口 80 并阻止负载平衡器看到停机的 IIS 服务。
而且它有效。我可以去睡觉了。
【问题讨论】:
+1 搞笑密码 我们在这场混乱中损失了多少生产力?我遇到了类似的问题,但在查找用户名时遇到了 IIS 崩溃的情况。 在 Windows 2012 上,对我来说是安装顺序,我必须先安装 Web 管理服务功能,然后安装 web deploy 3.5。 安装 web deploy 是不够的!。我安装了 web deploy,这是我做的第一件事。我不得不去添加/删除程序并更改安装设置以包含处理程序。我希望 MS 开发人员获得爱、幸福和繁荣,他们认为不包括让服务完成工作的处理程序是明智的默认设置。 我在尝试让 Web Deploy 3.6 正常工作时遇到了各种各样的问题,因此按照 Sinned Lolwut 的评论卸载了 3.6,然后安装了 3.5 - 首先流行。我使用 Web Platform Installer (microsoft.com/web/downloads/platform.aspx) 来安装 Web Deploy 3.5。之后重新启动 Web 管理服务,并能够验证 Visual Studio Web 部署配置文件中的连接。 (我会在上面的评论中回复,但还没有足够的声誉)。 【参考方案1】:如果其他人遇到与我相同的问题,我也会遇到相同的 404 错误。我发现检查的最快方法是打开服务器本身,然后打开“https://
不知何故,在从 Web 平台安装程序安装 Web Deploy 3.0 时,没有安装 IIS 7 部署处理程序,尽管 IIS 管理器 UI 模块安装了。就我而言,我从以下链接下载了 Web 部署工具安装 .msi:Web Deployment Tool Installation。然后我不得不返回 IIS 管理工具(开始 -> 运行 -> inetmgr.exe)> 服务器名称 > 单击管理服务图标,然后在 MsDeploy.axd 处理程序开始工作之前重新启动管理服务。
启用 IIS 部署处理程序 + 远程代理服务
【讨论】:
我能够进入控制面板 > 程序和功能。右键单击“Microsoft Web Deploy 3.5”并选择“更改”。从安装程序中选择“更改”和“IIS 部署处理程序”作为选项可用(最初被禁用。“非管理员部署配置”和“管理服务委派 UI”也是附加选项。)我的第一个请求MSDeploy.axd
仍然有 404 但下一个请求收到了登录提示。
如果你像我一样健忘,请记住你必须在“IIS”之前已经安装了管理服务(添加/删除Windows功能> Web服务器(IIS)>管理工具>管理服务)部署处理程序”在更改 Web Deploy 3.5 安装时可见。
@DGDev Web Deployment Tool 2.1是Web Deploy 3.0的前身
嗨,Carl G,您的评论是我为这个问题找到的唯一有用的东西。我希望它可以成为答案的一部分,而不是这里的简单评论。 (如果可能,请管理员将其作为正确答案)
@CarlG - 很棒的收获!我添加了一个屏幕截图以供参考。【参考方案2】:
您是否在服务器上安装了 Web Deploy? Web Deploy 向 WMSVC 注册了一个处理程序 (/msdeploy.axd),因此如果未安装,则 404 将是预期的状态代码。
【讨论】:
不,我没有。我不知道我需要!我以为整个部署都是 WMSvc 的一部分? OMG,我认为你是对的,他们就是那么愚蠢。我最近对这一切感到非常困惑,并认为您安装的 Web Deploy 只是代理,用于托管公司等。看看我的另一个问题***.com/questions/13602502/… WMSVC 用于远程配置 IIS。 MSDeploy 是在很久之后创建的,因此无法集成到核心中。如果无法安装 MSDeploy,您可以使用temp agent,它将在部署期间安装处理程序(显然,您需要管理员访问权限)。 我不得不卸载 Web Deploy 3,然后重新安装它以使其正常工作。不知何故,我的 IIS8 搞砸了。 同样的问题,刚刚进入控制面板并更改了“Web Deploy”安装以包含处理程序。重新启动 WMSVC 服务,一切都很好! 如果您在安装 Web 管理服务之前安装了 Web Deploy,则需要按照上述步骤进行操作【参考方案3】:在 Windows 2012 R2 Server 上,我遵循了 mga911 的建议。
我一直无法让部署正常工作。已安装 Web Deploy 3.5 -> 启用管理服务委派 -> 已启动确保服务。问题是没有安装 IIS 部署处理程序。通过 Web PI 4.6,我没有机会安装 IIS 部署处理程序。您需要进入控制面板 -> 程序和功能更改 Web Deploy 3.5 的安装。请注意我的指示。在更改过程中,它表示将安装所有子包,但文本消息显示将安装 3 个子组件中的 0 个。这些组件之一是 IIS 处理程序。仔细阅读,因为我没有并且很沮丧:)
控制面板 > 程序和功能 右键单击 Microsoft Web Deploy 3.5 选择更改 > 单击下一步 > 单击更改 您将注意到选择Web部署框架时,您将在消息中看到“它有3个子处理” 点击下拉菜单选择“整个功能将安装在本地硬盘上” 下一步 > 更改 >完成【讨论】:
在 Win 2012 R2 上使用 Web Deploy 3.6 尝试了这个技巧。无法处理以下错误“错误:“无法读取配置部分 'system.webServer/management/delegation',因为它缺少架构”... 卸载 Web Deploy 3.6 并从 iis.net/downloads/microsoft/web-deploy 获得 Web Deploy 3.5工作。 这对我很有帮助!谢谢。 Win2012 r iis 8【参考方案4】:我认为重要的一点是您必须先打开管理服务,然后再安装 Web Deploy。
我反其道而行之,但没有奏效。
只有重新安装 Web deploy 才开始工作。
【讨论】:
同样的事情发生在我身上。真是一场噩梦! 我想这里的大多数人(包括我自己)都有同样的问题,但他们没有意识到,因为卸载 web deploy,重新安装,然后重新启动管理服务几乎是一回事:)【参考方案5】:当我通过 Web 平台安装程序安装 Web Deploy 时,未选择 Handler。我必须手动安装Web Deploy 3.0,点击“更改”,然后选择要安装的Handler。
【讨论】:
【参考方案6】:经过数小时的搜索,下面的解决方案对我有用!!
Control Panel
> 程序和功能
右键单击 Microsoft Web Deploy 3.5
选择更改>单击下一步>单击更改
您将注意到选择Web部署框架时,您将在消息
中看到 "It has 0 of 3 subfeatures selected"
点击下拉选择"Entire feature will be installed on local hard drive"
下一步 > 更改 >完成
【讨论】:
【参考方案7】:在我的情况下,当通过 web pi 安装 web deploy 3.0 包时,我从未在 IIS /home 中获得管理服务委派选项。但是,重新安装它解决了问题,从而解决了我的 404.7 错误。
这是在 Microsoft Server 2012 和 IIS8 下
编辑:我最近在 Windows 8 上尝试了同样的事情,并想指出微软网站指出:
您无法使用 Web Deploy 为托管在 Windows 8.0 或 8.1 上的 IIS 中的站点设置远程发布。原因是 Windows 的客户端 SKU 不附带远程连接所需的 Web 管理服务。因此,在 Windows 8.0 或 8.1 上,IIS 管理器中不提供配置远程发布所需的 IIS 管理器权限图标和配置 Web 部署发布部署选项。 http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later#00
(是的,我意识到问题中的目标是 Server 2012,但这可以避免很多人像我一样头疼,因为这在我想让人们知道的旧开发机器上运行良好。)
【讨论】:
【参考方案8】:而不是使用 Web 平台安装程序。 从网站下载 WebDeploy.exe 并将其安装在具有完整包选项的服务器上。
它会解决问题。
【讨论】:
【参考方案9】:此外,您可能需要授予 Web 管理服务的访问权限
我还遇到了 Visual Studio (2013) 无法更新我的服务器上的应用程序 (Windows 2012 R2 IIS 8.5) 的问题。我如上所述手动添加了组件,但这并没有解决问题。然后我找到了this article。
它基本上说 Web 管理服务作为本地服务登录,它没有访问 Inetpub 目录的权限。 授予本地服务权限为我解决了这个问题。
【讨论】:
【参考方案10】:我也遇到了同样的问题。我通过“Restart-Service wmsvc”解决了这个问题。
【讨论】:
嘿,赞成你的问题,因为它似乎有帮助,因为这是你在这里的第一个答案,如果你下次能多写一点就太好了。再多说几句,完整的句子真的很感激:)【参考方案11】:服务器 2019 中仍然存在此问题。 需要按正确的顺序安装web部署
首先,启动服务——web管理服务 然后安装 Web 部署(从 Microsoft 网站下载)【讨论】:
【参考方案12】:仅使用 Windows 身份验证。网络部署 3.5。并且只有在***服务器图标的管理服务图标中设置的 WMSVC 证书。
【讨论】:
以上是关于通过 MSDeploy.exe 从 WMSvc 获取 404的主要内容,如果未能解决你的问题,请参考以下文章
使用msdeploy安装ng build创建的dist文件夹
Cannot start service WMSvc on computer '.'.