1

我不断收到以下错误“找不到与具有绑定 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 连接。有人遇到这个吗?

4

2 回答 2

5

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

是一篇博客文章,描述了您的错误以及如何使用TransportCredentialOnly. 这是关于basicHttpBinding但同样适用于您的webHttpBinding.

于 2010-09-02T22:04:16.260 回答
4

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

于 2010-09-02T22:10:18.897 回答