我有一个WCF .svc文件添加到我的MVC3项目中,我试图阻止通过HTTP访问该服务。
使用下面的配置,我的服务在一个端口上通过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 :(得分:0)
您可以评论或删除IMetadataExchange的第二个端点,
由于它是针对相同的服务,因此元数据将被公开
serviceBehaviors / serviceMetadata中的httpsGetEnabled =“true”。
否则你可以“设置IIS以要求SSL”,但因为它不是一个选项..
希望这会有所帮助。