使用带有webHttpBinding的ssl自托管wcf

时间:2016-12-29 13:12:39

标签: wcf ssl cors

我已经创建了一个自托管WCF服务,该服务充当了使用webHttpBinding和CORS支持的REST API服务。我从浏览器中使用此服务。

当我尝试添加https时,它无法正常工作。

我创建了CERTS,并根据本教程将它们组合在一起:

https://www.youtube.com/watch?v=ugpPSNxtAmY

我的配置是:

<system.serviceModel>
<services>
  <service name="MyService.MyService">
    <endpoint address="" binding="webHttpBinding" contract="MyService.IMyService" behaviorConfiguration="jsonBehavior">
      <identity>
        <dns value="MyMachine" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
  </service>
</services>
<extensions>
  <behaviorExtensions>
    <add name="crossOriginResourceSharingBehavior" type="Company.Common.EnableCrossOriginResourceSharingBehavior, Company.Common" />
  </behaviorExtensions>
</extensions>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- To avoid disclosing metadata information, 
      set the values below to false before deployment -->
      <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
      <!-- To receive exception details in faults for debugging purposes, 
      set the value below to true.  Set to false before deployment 
      to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="False" />
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="jsonBehavior">
      <webHttp />
      <crossOriginResourceSharingBehavior />
    </behavior>
  </endpointBehaviors>
</behaviors>
<bindings>
  <webHttpBinding>
    <binding crossDomainScriptAccessEnabled="true" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="524288"
    transferMode="Buffered">
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
      maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </webHttpBinding>
</bindings>
<standardEndpoints>
  <webScriptEndpoint>
    <standardEndpoint name="" crossDomainScriptAccessEnabled="true" />
  </webScriptEndpoint>
</standardEndpoints>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>

当我尝试消费时,我收到了错误消息。 我该怎么做。 该服务的客户端是浏览器

1 个答案:

答案 0 :(得分:0)

本教程非常棒:

http://www.allenconway.net/2012/05/creating-wcf-restful-service-and-secure.html

它确切地解释了应该做什么