【发布时间】:2017-02-04 12:16:57
【问题描述】:
我开发了一个示例 WCF 服务并托管在 IIS 8.5、Windows Server 2012 R2 中。请注意,此服务器已添加到 F5 负载平衡设置(我不知道此设置的详细信息),我应该使用 URL https://loadbalanceddomainname/servicename.svc 调用此服务。
在IIS中,我做了如下配置:
- 创建了一个新网站
- 创建了一个主题名为“loadbalanceddomainname”的自签名证书并导入到个人存储中。
- 将此证书绑定到本网站的443端口,主机头设置为“loadbalanceddomainname”。
使用此配置,当我尝试浏览 URL https://loadbalanceddomainname/servicename.svc 时,它给了我一个 504 错误(如 Fiddler -> "
[Fiddler] ReadResponse() 失败:服务器没有返回完整的 对此请求的响应。服务器返回 0 个字节。
")
但是,在 IIS 中,如果我使用主机标头“loadbalanceddomainname”向端口 80 添加一个绑定,我会得到如下屏幕截图所示的响应。
虽然我可以在浏览器中使用 Https(如地址栏中所示)调用此服务,并将端口 80 绑定添加到 IIS,但我看到它已更改为 http,如下面的屏幕截图所示“svcutil.exe http://loadbalanceddomainname/servicename.svc”。为什么这个 https 变成了 http?为什么我移除 80 端口的绑定后服务会报 504 错误?
虽然我在浏览器中得到响应(在服务器中绑定端口 80),但当我尝试使用测试客户端调用操作时(通过在 Visual Studio 中添加服务引用并创建代理),我收到错误 404 - 不存在这样的端点。 WCF 跟踪日志也显示以下错误:
未能查找通道以接收传入消息。无论是 端点或未找到 SOAP 操作。
我还注意到,我在 IIS 中绑定的证书不是我在浏览器中看到的,在上面的屏幕截图中 - 当我查看证书详细信息时。这是来自 F5 还是介于两者之间的不同证书?
【问题讨论】:
标签: wcf iis https wcf-binding wcf-security