1

我遇到的情况是,我有一个 WCF 负载平衡器位于 F5 负载平衡器后面,该负载平衡器正在执行 SSL 解密并将未加密的消息转发到它后面的 BizTalk 托管 WCF 服务。

如果我使用基本 http 配置服务并且客户端尝试调用该服务,则会返回:

提供的 URI 方案“https”无效;预期的“http”。参数名称:via

如果我将服务配置为使用 wcf-custom 并使用 windows auth 或 None 设置 wsHttp 的绑定,则客户端会收到以下异常:

在 https:/// service.svc 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。

我认为这个问题的答案可能涉及使用自定义行为,但是我想知道过去是否有人遇到过这种情况,如果是,你是如何处理的?

4

1 回答 1

1

对于您的情况,最简单的解决方案是使用名为ClearUsernameBinding的东西,您可以在其中通过 http 通道传递用户名密码。默认情况下,basicHttpBinding 不允许通过 http 通道传递用户名密码,我们倾向于使用 wsHttpBinding,它在负载平衡环境的情况下会失败。

或者,您必须将 F5 负载平衡器配置为不为与您的 WCF 服务相关的任何请求卸载 SSL。例如:在不同的端口上托管 WCF 服务,然后告诉 F5 负载平衡器不要为任何进入该端口的流量卸载 SSL。

于 2013-05-02T17:04:32.760 回答