我们有一个在 HTTPS 上运行的 WebService。如果我使用 SOAPUI 并在以下位置发出请求:https://testservice.mydomain.com/WcfService.svc,一切正常。但是客户报告他们收到 503 服务不可用错误。
在他们的 HTTP 中主持人标头我看到的是 --> testservice.mydomain.com:443。
为了复制该标头,我创建了一个测试 C# 客户端,并手动设置 HOST 标头以在请求中包含 443 端口。我收到相同的错误,并且 IIS 网站日志中没有任何记录。同样,在 SOAPUI 中,如果我点击 URL:https://testservice.mydomain.com:443/WcfService.svc(必须这样做,因为无法在 SOAPUI 中手动更改 HOST 标头)返回相同的服务不可用错误。
如果我通过浏览器访问该服务,那么即使在 URL 中包含端口号后我也可以访问。我尝试访问在线可用的 Web 服务,无论是否使用明确的端口号我都可以正确访问它们。
这是 IIS 配置问题吗?我们使用 IIS 7.5 并使用 HOST 标头来托管多个站点。实际上,我对 IIS 了解不多,所以只是猜测。
答案1
我们的网络团队解决了这个问题。这是 Netscaler 配置的问题;不知何故,它没有将请求(标头中包含端口号)传递到正确的 IP(托管 WebService 的位置)。
抱歉,我无法详细解释 NetScaler 解析。我两次询问网络人员,他们的解释让我无法理解。但无论如何,如果有人遇到类似问题,请检查您的负载均衡器、DNS 和防火墙设置。