在 HTTP HOST header 中包含端口号会导致服务不可用错误

Including Port number in HTTP HOST header causes Service Unavailable error

我们有一个基于 HTTPS 的网络服务 运行。如果我使用 SOAPUI 并在 https://testservice.mydomain.com/WcfService.svc 发出请求,它工作正常。但是客户报告他们收到 503 服务不可用错误。

在他们的 HTTP HOST header 中我看到 --> testservice.mydomain.com:443。 为了复制,我创建了一个测试 C# 客户端并手动设置 HOST header 以在请求中包含 443 端口。我遇到同样的错误,并且 IIS 网站日志中没有记录任何内容。同样在 SOAPUI 中,如果我点击 URL: https://testservice.mydomain.com:443/WcfService.svc(必须这样做,因为不能在 SOAPUI 中手动更改 HOST header)返回相同的服务不可用错误。

如果我通过浏览器访问该服务,那么即使在 URL.I 中包含端口号后我也可以访问 尝试访问在线可用的 Web 服务,无论有没有显式端口号,我都可以正确访问它们。

这是 IIS 配置问题吗?我们使用 IIS 7.5 并使用 HOST headers 来托管多个站点。其实我对IIS了解不多所以只是推测。

我们的网络团队解决了这个问题。 Netscaler 的配置方式存在问题;不知何故,它没有传递请求 - 端口号在 header 中,以更正 IP(托管 WebService 的位置)。
抱歉,我无法详细解释 NetScaler 分辨率。我两次询问网络人员,他们的解释让我难以理解。但无论如何,如果有人遇到类似问题,请检查您的负载均衡器、DNS 和防火墙。