我不断收到以下错误“无法找到与绑定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连接。有人碰到这个吗?
答案 0 :(得分:5)
如果告诉WCF使用传输安全模式,则必须使用支持安全通信的传输协议。 HTTP不支持安全通信,因为它是一个明文协议(拦截您的通信的任何人都可以简单地读取正在传输的内容)。 HTTPS确实支持安全通信,因此具有传输安全性的webHttpBinding
的唯一选择是使用HTTPS(可以在IIS中配置)。
Here是一篇博客文章,描述了您的错误以及如何使用TransportCredentialOnly
解决错误。这大概是basicHttpBinding
,但同样适用于webHttpBinding
。
答案 1 :(得分:4)
如果您只想要传输级别身份验证(=基本身份验证),但不希望传输级别安全通信(= HTTPS),则必须将安全模式设置为TransportCredentialOnly。