wcf - 如何在 WSDL 中使用 HTTPS 为卸载 SSL 后的 WCF 服务配置服务端点

标签 wcf iis ssl https wcf-binding

我的部署环境在我的 IIS 7.5 托管 WCF 服务前面有 SSL 卸载(和负载平衡)硬件。所以虽然外界会去

https://mydomain.com/MyService.svc

硬件将处理 SSL 并将流量转发到

http://myintranet/MyService.svc

但是,当我从外部获取 WSDL(通过添加“?wsdl”)时,WSDL 地址是“http://mydomain.com/MyService.svc”——我的公共(public)地址的不安全、非 SSL 版本。

我尝试显式设置 listenUri,但出现错误,因为我的站点还需要多个绑定(bind)(我在内部可以通过 SSL 卸载但通过负载均衡器访问它,或者绕过负载均衡器并访问该站点(s) 直接):

When 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' is set to true in configuration, the endpoints are required to specify a relative address. If you are specifying a relative listen URI on the endpoint, then the address can be absolute.

我已经尝试了多种 baseAddresses、前缀过滤器、多个端点等的组合,但总是以这样或那样的错误结束。尽管我在谷歌上搜索得最好,但我找不到其他人使用此设置。

最佳答案

我们正忙于让 SSL 卸载与 WCF 一起工作。问题是同一个配置开关确定允许的协议(protocol)(必须是 http)和代理中发出的协议(protocol)(必须是 https)。我们的答案是放弃 SSL 卸载要求。我们可能太容易放弃了。

如果您比我们更顽强,您可能会考虑尝试自定义 WSDL 导出器,如文档中所述 here .

关于wcf - 如何在 WSDL 中使用 HTTPS 为卸载 SSL 后的 WCF 服务配置服务端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9417939/

相关文章:

ssl - Ansible,如何信任证书?

wcf - 为什么我的 ChannelFactory 看不到我的端点配置?

c# - 无法让 WCF 服务在第三方托管服务中工作

iis - 使用 IIS 设置 Coldfusion 10 - 无法配置 IIS 连接器

asp.net - 在 AWS 中使用 Application Load Balancer (ALB) 时出现混合内容问题

ssl - HAProxy 如何管理 ip 地址上的证书?

c# - 没有组元素的列表的 CollectionDataContractAttribute

c# WCF REST 用于参数和验证的强类型 WebGet 对象

windows - 64 位操作系统 (windows) 上的 32 位应用程序

ruby-on-rails - API 调用使用 Net::HTTP 抛出 Net::HTTPBadResponse 错误