【问题标题】:WCF Service hosted in IIS not giving response with HTTPSIIS 中托管的 WCF 服务未使用 HTTPS 提供响应
【发布时间】:2017-02-04 12:16:57
【问题描述】:

我开发了一个示例 WCF 服务并托管在 IIS 8.5、Windows Server 2012 R2 中。请注意,此服务器已添加到 F5 负载平衡设置(我不知道此设置的详细信息),我应该使用 URL https://loadbalanceddomainname/servicename.svc 调用此服务。

在IIS中,我做了如下配置:

  1. 创建了一个新网站
    1. 创建了一个主题名为“loadbalanceddomainname”的自签名证书并导入到个人存储中。
    2. 将此证书绑定到本网站的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


    【解决方案1】:

    我认为您正在处理这个元数据问题。当客户端尝试通过 https 访问服务时,由于 soap: 地址位置,它仍然被重定向到 http。

    https://blogs.msdn.microsoft.com/dsnotes/2014/10/03/ssl-offloading-in-load-balancer-scenario/

    【讨论】:

    • 为什么会有这样的问题?它是否不起作用或无法提供请求和响应?
    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多