我试图通过两个端点http和https托管WCF服务

时间:2015-02-24 13:49:12

标签: c# wcf http binding https

我正在尝试通过http和https托管WCF服务并使用以下配置:

<system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_ITestService">
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
        <binding name="BasicHttpsBinding_ITestService">
          <security mode="Transport">
            <transport clientCredentialType="None" proxyCredentialType="None" />
            <message />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="TestService" behaviorConfiguration="TestServiceBehaviour">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8081/"/>
            <add baseAddress="https://localhost:8083/"/>
          </baseAddresses>
        </host>
        <endpoint address=""
             binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ITestService"
             contract="ITestService" name="BasicHttpsBinding_ITestService" />
        <endpoint address=""
             binding="basicHttpBinding" bindingConfiguration="BasicHttpsBinding_ITestService"
             contract="ITestService" name="BasicHttpsBinding_ITestService" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="TestServiceBehaviour">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

但是我收到以下错误: 找不到与绑定BasicHttpBinding的端点的方案https匹配的基址。注册的基地址方案是[http]。

需要一个解决方案,因为我已经为http和https定义了基地址和绑定。

感谢。

2 个答案:

答案 0 :(得分:0)

试试这个

<endpoint address=""
          binding="basicHttpBinding" 
          bindingConfiguration="BasicHttpBinding_ITestService"
          contract="ITestService" name="BasicHttpsBinding_ITestService"/>
<endpoint address=""
          binding="basicHttpBinding" 
          bindingConfiguration="BasicHttpsBinding_ITestService"
          contract="ITestService" name="BasicHttpsBinding_ITestService"/>
 <endpoint address="mex" 
         binding="mexHttpsBinding" 
         contract="IMetadataExchange" />

答案 1 :(得分:0)

我没有在IIS服务器上启用https绑定,并且尝试使用https协议托管服务。创建证书并在IIS服务器上启用https绑定解决了该问题。 :)