【问题标题】:WCF using Transport always attempts to use HTTPS when I don't want it to当我不希望使用 HTTPS 时,使用 Transport 的 WCF 总是尝试使用 HTTPS
【发布时间】:2011-04-07 14:04:13
【问题描述】:

我不断收到以下错误“找不到与具有绑定 WebHttpBinding 的端点的方案 https 匹配的基地址。注册的基地址方案是 [http]。”这是因为我通过添加以下内容进入基本传输身份验证:

  <webHttpBinding>
    <binding name="secureBasic">
      <security mode="Transport">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </webHttpBinding>

谷歌搜索后,常见的修复似乎是以下代码,但我没有成功:

<baseAddressPrefixFilters>
  <add prefix="http://mywebsiteurl"/>
</baseAddressPrefixFilters>

仍然没有任何效果。我想要的只是在非 https 连接上使用基本的 http 身份验证。我没有配置任何东西,默认情况下,WCF 似乎想要强制使用 HTTPS 连接。有人遇到这个吗?

【问题讨论】:

    标签: wcf https transport credentials


    【解决方案1】:

    如果您告诉 WCF 使用传输安全模式,则必须使用支持安全通信的传输协议。 HTTP 不支持安全通信,因为它是一个纯文本协议(任何拦截您的通信的人都可以简单地读取正在传输的内容)。 HTTPS 确实支持安全通信,因此对于具有传输安全性的 webHttpBinding,您唯一的选择是使用 HTTPS(您可以在 IIS 中进行配置)。

    Here 是一篇博客文章,描述了您的错误以及如何使用TransportCredentialOnly 解决它。这与 basicHttpBinding 相关,但同样适用于您的 webHttpBinding

    【讨论】:

      【解决方案2】:

      如果您只需要传输级身份验证(= 基本身份验证)但不希望传输级安全通信(= HTTPS),则必须将安全模式设置为 TransportCredentialOnly。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2010-09-30
        • 2012-02-09
        • 2011-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多