通过MSDeploy.exe访问WMSvc时出现404错误

135

从Windows 8升级到安装了Web管理服务的Windows Server 2012(IIS 8),我可以在W8设备上使用IIS Manager来管理远程服务器,但是当我执行以下命令时,我会从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

我已经尝试了各种组合和参数。我可以使用telnet连接到该端口,我知道它是开放的。

我只是从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

通过VPN连接到客户端的另一个Web服务器尝试使用相同的命令,结果非常顺利!看来我的全新2012版本构建的IIS出了问题。

更新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 Deploy安装的另一部分(我认为它是Web Deploy的全部),因为它占用了80端口并阻止负载均衡器看到IIS服务停机。

现在它可以工作了。我可以去睡觉了。


26
+1 对于那个滑稽的密码 - Michael12345
5
这场混乱让我们失去了多少生产力?我遇到了类似的问题,但发现在查找用户名时IIS崩溃了。 - ATL_DEV
6
在Windows 2012上,对我来说安装顺序是先安装Web管理服务功能,然后再安装Web Deploy 3.5。 - JustEngland
1
仅仅安装Web Deploy是不够的!我已经安装了Web Deploy,这是我做的第一件事情。但我还需要前往添加/删除程序,并更改安装设置以包括处理程序。我希望那位认为默认情况下不包括处理程序的MS开发者能得到爱、幸福和繁荣。毕竟它让服务无法正常工作。 - nurettin
我在尝试使用Web Deploy 3.6时遇到了各种问题,所以按照Sinned Lolwut的评论卸载了3.6,并安装了3.5 - 第一次就成功了。我使用Web平台安装程序(https://www.microsoft.com/web/downloads/platform.aspx)安装了Web Deploy 3.5。之后重新启动了Web管理服务,并能够在Visual Studio Web Deploy配置文件中验证连接。(我本来想在上面的评论中回复,但是还没有足够的声望)。 - bob number 2
我可以确认对我有效的方法: -在安装Web Deploy之前,必须安装和设置Web管理服务 -确保Web管理服务允许远程连接并绑定有效证书 -然后安装/重新安装Web Deploy。我使用了最新的Web Deploy 3.6(x64)版本。 - timk
13个回答

202
如果有人遇到和我一样的问题,也遇到了404错误。我发现最快的检查方法是进入服务器本身,打开“https://<servername>:8172/MsDeploy.axd”。Chrome和Firefox只显示一个空白页面,所以我必须使用开发者工具(F12)中的网络选项卡来查看实际的404错误消息。
不知何故,在从Web平台安装程序安装Web Deploy 3.0时,IIS 7 Deployment Handler没有被安装,尽管IIS Manager UI Module已经安装。在我的情况下,我从以下链接下载了Web Deployment Tool Installation .msi:Web Deployment Tool Installation。然后我必须返回到IIS Admin Tool(开始 -> 运行 -> inetmgr.exe)> {server name} > 点击管理服务图标,并在MsDeploy.axd处理程序开始工作之前重新启动管理服务。
启用IIS部署处理程序+远程代理服务

enter image description here


106
我能够进入控制面板 > 程序和功能。右键单击“Microsoft Web Deploy 3.5”并选择“更改”。在安装程序中,选择“更改”,然后“IIS部署处理程序”作为选项可用(起初是禁用的)。此外,“为非管理员部署配置”和“管理服务委托UI”也是附加选项。我的第一个对MSDeploy.axd的请求仍然出现了404错误,但下一次请求则收到了登录提示。 - Carl G
3
如果你像我一样健忘,记住在更改Web Deploy 3.5安装时,“IIS部署处理程序”可见之前,必须已经安装了管理服务(添加/删除Windows功能> Web服务器(IIS)>管理工具>管理服务)。 - Carl G
@DGDev Web Deployment Tool 2.1是Web Deploy 3.0的前身。 - Kuepper
1
嘿,Carl G,你的评论是我在解决这个问题时唯一有用的东西。我希望它可以成为答案的一部分,而不仅仅是一个简单的评论。(管理员如果可能的话,请将其作为正确答案放置) - mohghaderi
谢谢,这正是我所缺少的。我正在访问URL,它花了几分钟的时间加载页面,最终却显示未收到数据。 - Tod
显示剩余4条评论

93
您是否在服务器上安装了Web Deploy?Web Deploy会向WMSVC注册一个处理程序(/msdeploy.axd),因此如果未安装Web Deploy,则预期状态代码为404。

2
WMSVC用于远程配置IIS。MSDeploy是很久之后才创建的,所以无法集成到核心中。如果无法安装MSDeploy,则可以使用temp agent,该代理程序将在部署期间安装处理程序(您需要管理员访问权限,显然)。 - Richard Szalay
18
我不得不卸载Web Deploy 3,然后重新安装它才能使其正常工作。不知何故,我的IIS8出了问题。 - Rosdi Kasim
31
同样的问题,我刚刚进入“控制面板”,更改了“Web Deploy”安装选项,以包括处理程序。重启了WMSVC服务后一切正常! - Matt Woodward
13
如果在安装Web管理服务之前安装了Web Deploy,您需要按照上述描述的步骤进行操作。 - Matt Baker
2
@RohitJain 没错,如果未安装管理服务,则 /msdeploy.axd 处理程序将不会安装。通过卸载/重新安装来解决问题是正确的做法(尽管您也可以尝试修复)。 - Richard Szalay
显示剩余4条评论

69
在Windows 2012 R2服务器上,我遵循了mga911的建议。我卡在了部署工作上。已安装Web Deploy 3.5 -> 启用管理服务委派 -> 确保服务已启动。问题是尚未安装IIS Deployment处理程序。通过Web PI 4.6进行操作时,我没有获得安装IIS部署处理程序的机会。您需要进入控制面板->程序和功能更改Web Deploy 3.5的安装。请注意我的说明。在更改过程中,它指出将安装所有子包,但文本消息显示将不安装3个子组件中的任何一个。其中一个组件是IIS处理程序。仔细阅读,因为我没有这样做而感到沮丧 :)
  • 控制面板>程序和功能
  • 右键单击Microsoft Web Deploy 3.5
    • 选择更改>单击下一步>单击更改
    • 当选中Web Deployment Framework时,您将在消息中看到"已选择0个子特性"
    • 单击下拉列表,选择"整个功能将被安装到本地硬盘上"
    • 下一步>更改>完成

2
尝试在Win 2012 R2上使用Web Deploy 3.6进行此操作,但出现以下错误:“错误:“无法读取配置部分'system.webServer/management/delegation',因为缺少模式”... 卸载Web Deploy 3.6并从http://www.iis.net/downloads/microsoft/web-deploy获取Web Deploy 3.5 成功了。 - Sinned Lolwut
这对我非常有帮助!谢谢。Win2012 r iis 8 - Roberto Gata

19

我认为一个重要的点是您需要先开启管理服务,然后再安装Web Deploy。

我之前是反过来做的,但没有成功。

只有重新安装Web Deploy,它才开始正常工作。


我也遇到了同样的问题。真是一场噩梦! - Christopher Townsend
1
我猜这里的大多数人(包括我自己)都遇到了同样的问题,但他们没有意识到,因为卸载Web Deploy,重新安装它,然后重新启动管理服务基本上是一样的 :) - ilter

14

经过数小时的搜索,按照下面您的解决方案对我起了作用!!

控制面板 > 程序和功能

右键单击Microsoft Web Deploy 3.5

选择更改 > 点击下一步 > 点击更改

您会注意到当Web Deployment Framework被选中时,您会在消息中看到

 "It has 0 of 3 subfeatures selected"

单击下拉选择框,选择"在本地硬盘上安装整个功能"

下一步 > 更改 > 完成


13

当我通过Web平台安装程序安装Web Deploy时,处理程序未被选中。 我必须手动安装Web Deploy 3.0,单击“更改”,然后选择要安装的处理程序。


8
在我的情况下,通过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管理器权限图标和配置Web Deploy发布部署选项在IIS管理器中不可用。http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later#00(是的,我意识到问题的目标是Server 2012,但这可以使许多人避免像我一样遇到相同的问题,因为在我的旧开发机上工作得很好,我想让人们知道。)

4

不要使用Web平台安装程序。

从网站下载WebDeploy.exe,并选择完整包选项在服务器上进行安装。

这将解决问题。


1
此外,您可能需要授予Web管理服务访问权限。
我也遇到了一个问题,即Visual Studio(2013)无法在我的服务器(Windows 2012 R2 IIS 8.5)上更新应用程序。 我按照上面描述的手动添加了组件,但这并没有解决问题。 然后我找到了this article
它基本上说Web Management Service以Local Service身份登录,而Local Service没有访问Inetpub目录的访问权限。 为Local Service授予权限解决了我的问题。

1

我遇到了同样的问题。我通过执行 "Restart-Service wmsvc" 命令解决了这个问题。


1
嘿,我给你的问题点了赞,因为它似乎很有帮助。作为你在这里的第一个回答,下次如果你能多写一点点就更好了。只需要几个完整的句子即可,非常感谢 :) - Tim Cadenbach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接