现状
我有一台托管服务器,上面有我们的开发 Web 服务器。我已经安装了 Web 管理服务(通过 Web 平台安装程序),并设置了 IIS 管理用户、设置了委派、启动了服务,我正在尝试通过 Visual Studio 2013 发布 Web 对话框的“验证连接”按钮连接到该服务。
我正在使用如下地址:(
https://169.254.0.0:8172/msdeploy.axd
显然 IP 地址已更改,但我绝对确定我使用的地址是正确的,因为这是我用于 RDP 的地址。我也按照这篇 SF 文章尝试了 http:如何配置 WebDeploy 服务器以便从 Visual Studio 直接发布?
我已确保服务(Web 管理和 Web 部署代理)正在运行,并且防火墙没有阻止通信(我已尝试将其关闭)。
以前,我曾尝试过在 LAN 和域上的服务器上实现此操作,但这个服务器都不是。任何建议都将不胜感激。
更新
Windows 防火墙未管理端口限制
服务器端口限制由 Azure 管理(我在进入这个项目时并不知道这一点)。打开 8172 TCP 端口,并使用上述地址的 http 版本。现在错误是:Could not complete the request to remote agent URL 'http://.../msdeploy.axd/MSDEPLOYAGENTSERVICE'. The operation has timed out.
错误日志中的 404.7 错误
除了上述超时错误消息外,我再次查看了日志,发现返回的 HTTP 错误是 404.7:未找到请求过滤模块配置为拒绝文件扩展名。我查看了处理程序映射,发现有 *.axd 的处理程序,它们似乎已启用并允许。这让我很生气。
答案1
这是一系列的问题:
- Windows 防火墙没有阻止端口 8172 TCP,Azure 阻止了。教训是:向上级询问你准备修改的服务器的真实性质。
- 在这种情况下,MsDeployServiceURL 应该是 https。寓意:有时听起来像“事情就是这样”的陈词滥调是不可信的。
- 必须为 Web Deploy 安装附加模块或功能:无法在 Windows Server 2012 HTTP 错误 404.7 上使用“Web 部署”。寓意:IDK,即使您认为不需要其中的某些部分,也要安装整个包并跳过快速安装?