2012-02-11 37 views
0

我已经将WCF .svc文件添加到我的MVC3项目中,并试图阻止通过HTTP访问服务。WCF仅通过托管在MVC项目中的HTTPS SVC

通过以下配置,我的服务可通过https在一个端口上,然后通过另一个端口上的http访问。

我该如何预防?

感谢

<system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="TS"> 
        <security mode="Transport"> 
         <transport clientCredentialType="None"/> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <services> 
      <service name="Endpoints" behaviorConfiguration="Default"> 
       <endpoint address="https://localhost:44301/Services/Endpoints.svc" binding="basicHttpBinding" bindingConfiguration="TS" contract="UkerLtd.Services.IEndpoints"></endpoint> 
       <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" /> 
      </service> 
     </services> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior name="Default"> 
        <serviceMetadata httpGetEnabled="false" httpsGetUrl="https://localhost:44301/Services/Endpoints.svc" httpsGetEnabled="true" /> 
        <serviceDebug includeExceptionDetailInFaults="true" /> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="false" /> 
    </system.serviceModel> 

回答

0

您可以发表评论或删除第二个端点的IMetadataExchange接口,
因为它是相同的服务,元数据将被
httpsGetEnabled =“真”,在被曝光serviceBehaviors/serviceMetadata。

否则,你可以“设置IIS以要求SSL”,但因为它是不是一种选择..

希望这会有所帮助。