【发布时间】:2023-03-20 13:49:01
【问题描述】:
我的部署环境在我的 IIS 7.5 托管 WCF 服务前面有 SSL 卸载(和负载平衡)硬件。所以虽然外面的世界会去
https://mydomain.com/MyService.svc
硬件将处理 SSL 并将流量转发到
http://myintranet/MyService.svc
但是,当我从外部获取 WSDL(通过添加“?wsdl”)时,WSDL 地址用于“http://mydomain.com/MyService.svc”——我的公共地址的不安全、非 SSL 版本。
我尝试显式设置 listenUri,但出现错误,因为我的站点还需要多个绑定(我在内部可以通过 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.
我尝试了多种基本地址、前缀过滤器、多个端点等的组合,但总是以一个错误或另一个错误告终。尽管我在谷歌上搜索得最好,但我找不到其他人使用此设置。
【问题讨论】:
-
如果您有 SSL 卸载的场景,那么值得您考虑使用 basicHttpBinding,因为负载均衡器和您的 Web 服务器之间的流量将位于您自己的防火墙之后并且是安全的。但是,如果您要对用户名密码执行身份验证,请考虑检查 clearusernamebinding,它允许您通过 basichttpbinding 传输用户名 passowrd:webservices20.blogspot.com/2008/11/…
-
@Rajesh,我实际上已经使用了 SSL 卸载的替代策略 (blog.hackedbrain.com/2006/09/26/…)。但我仍然希望我生成的 WSDL 包含一个 HTTPS 端点 URI,而我的实际站点需要绑定到几个非 HTTPS 名称。
-
您找到解决方案了吗?
-
有没有任何方法可以克服这个问题。我面临同样的问题。谢谢
标签: wcf iis ssl https wcf-binding