You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用WebHttpBinding无法访问AWS ELB后的HTTPS端点问题

解决AWS ALB HTTPS访问WCF服务的配置错误

尝试通过HTTPS访问AWS应用负载均衡(ALB)后端Windows服务器上的WCF服务时,触发以下错误:

"Could not find a base address that matches scheme https for the endpoint with binding WebHttpBinding. Registered base address schemes are [http]"

错误原因

这个问题的核心是:你的WCF配置要求端点使用HTTPS绑定,但后端服务器仅注册了HTTP基地址;同时结合AWS ALB的架构,ALB通常会在负载均衡层终止SSL连接,后端Windows服务器实际接收的是HTTP请求,不需要直接配置HTTPS绑定。

具体配置修改步骤

1. 调整webHttpBinding的安全模式

移除绑定中的Transport安全配置(或设置为None),适配ALB转发的HTTP请求:

<bindings>
    <webHttpBinding>
        <binding name="BindingNew">
            <!-- 移除原有的Transport安全块,或替换为以下配置 -->
            <!-- <security mode="None"></security> -->
        </binding>
    </webHttpBinding>
</bindings>

2. 更新服务元数据配置

如果需要通过HTTPS访问服务元数据,修改serviceMetadata的httpsGetEnabled为True:

<behavior name="NewBehaviour">
    <serviceMetadata httpsGetEnabled="True" httpGetEnabled="True" />
    <serviceDebug includeExceptionDetailInFaults="False" />
</behavior>

3. 适配元数据端点(可选)

若要通过HTTPS访问元数据,将mex端点的绑定改为mexHttpsBinding:

<services>
    <service name="FFCService.FFCService" behaviorConfiguration="NewBehaviour">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="BindingNew" behaviorConfiguration="webHttp" contract="FFCService.IFFCService"/>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
    </service>
</services>

4. 检查IIS站点绑定

确保Windows服务器上的IIS站点已绑定HTTP端口(默认80),因为ALB会将HTTPS请求转发为HTTP到后端。无需在IIS上配置SSL证书(除非你需要后端直接暴露HTTPS)。

验证操作

  1. 保存修改后的web.config,重启IIS站点
  2. 通过ALB的HTTPS域名访问服务端点,确认错误消失
  3. 若配置了元数据,可访问https://<ALB域名>/mex验证元数据是否正常返回

内容的提问来源于stack exchange,提问作者Stuckerstick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:57:41