使用传输的WCF总是在我不希望使用HTTPS时尝试使用HTTPS

Jos*_*nko 1 https wcf credentials transport

我一直收到以下错误"无法找到与绑定WebHttpBinding的端点匹配方案https的基址.注册的基址方案是[http]." 这开始是因为我通过添加以下内容进入基本传输身份验

  <webHttpBinding>
    <binding name="secureBasic">
      <security mode="Transport">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </webHttpBinding>
Run Code Online (Sandbox Code Playgroud)

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

<baseAddressPrefixFilters>
  <add prefix="http://mywebsiteurl"/>
</baseAddressPrefixFilters>
Run Code Online (Sandbox Code Playgroud)

但是,没有任何作用.我想要的是在非https连接上使用基本的http身份验证.我没有配置什么,默认情况下它出现WCF想要强制HTTPS连接.有人碰到这个吗?

Ron*_*erg 5

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

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