WCF - 找不到与https端点的scheme http匹配的基址

时间:2013-12-30 11:31:27

标签: .net wcf service

当我尝试运行我的服务时,出现以下错误: “无法通过绑定BasicHttpBinding找到与端点的方案http匹配的基址。注册的基址方案为[https]。”

我的服务声明:

 <service name="service" behaviorConfiguration="serviceEndpointBehavior">

    <host>
      <baseAddresses>
        <add baseAddress="https://abc:12704/service"/>
      </baseAddresses>
    </host>

    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding2" contract="service"/>
    <endpoint address="mex" contract="IMetadataExchange" binding="basicHttpBinding"/>

  </service>

结合:

  <basicHttpBinding>
    <binding name="basicHttpBinding2" maxReceivedMessageSize="1000000">
      <readerQuotas maxArrayLength="1000000" maxStringContentLength="1000000"/>
    </binding>
  </basicHttpBinding>

我还在行为中遵循声明:

<behavior name="serviceEndpointBehavior">
      <dataContractSerializer maxItemsInObjectGraph="1000000"/>
      <serviceMetadata httpsGetEnabled="true" />
</behavior>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您定义的绑定是基本的http绑定。您的端点是http,具有增加的安全性(https)。您需要在绑定上定义安全性,否则它们将不匹配。没有任何安全性,您不能拥有https。

你需要找到一个很好的教程或书籍,因为https比配置文件中的一些条目更多。您将需要一个证书,您将需要一个实际执行此操作的Web服务器(提示:Cassini,内部VS网络服务器不会执行任何https ...它只会丢弃它而不会发出任何警告)。