WCF Rest Service的SSL实现

时间:2015-09-04 10:32:50

标签: wcf rest ssl web-config wcf-binding

 <system.serviceModel>
 <!--WCF Service-->
 <services>
  <service name="Service.RestServices">
    <endpoint address=""
              binding="basicHttpBinding"
              bindingConfiguration="secureHttpBinding"
              contract="Service.IRestServices"/>

    <endpoint address="mex"
              binding="mexHttpsBinding"
              contract="Service.IRestServices" />
  </service>
 </services>
 <!--WCF Binding-->
 <bindings>
  <basicHttpBinding>
    <binding name="secureHttpBinding">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </basicHttpBinding>
 </bindings>
 <!--WCF Behaviors--> 
 <behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata 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>
 </behaviors>    

我的Web.config文件中还有其他我想要考虑的内容吗?以下是我的服务界面。

Service Interface(IRestServices)

[OperationContract] [WebInvoke(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, Method = "POST", UriTemplate = "Login", BodyStyle = WebMessageBodyStyle.Wrapped)]

当我尝试使用HTTPS调用时,我得到的响应是404(未找到),而使用HTTP时,我正在获得响应数据。

如何使用HTTPS调用我的rest api web服务(WCF)?

1 个答案:

答案 0 :(得分:0)

我们必须在WebService.svc文件中定义工厂以支持WCF休息服务中的Https

<%@ ServiceHost Language="C#" Debug="true" Service="XcellenceIt.Plugin.Misc.NopRestApi.Service.RestServices" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>