我有一些 WCF 服务已经在 HTTP 上工作了一段时间。
我现在将它们移动到部署服务器,它们只需要 HTTPS。
我获得了证书,当我最初设置它们时,它们同时通过 HTTP 和 HTTPS 工作。
...此时我想放弃对服务的非安全访问。
所以我试图对我的 web.config 进行修改以实现这一点:
服务行为:
<serviceBehaviors>
<behavior name="MetaEnabledBahavior">
<serviceMetadata httpsGetEnabled="true"/>
</behavior>
</serviceBehaviors>
服务端点:
<service name="Services.BookingService" behaviorConfiguration="MetaEnabledBahavior">
<!-- Service Endpoints -->
<clear/>
<endpoint address="https://website.com/services/BookingService.svc" binding="wsHttpBinding"
bindingConfiguration="TransportSecurity" contract="Services.IBookingService"/>
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
</service>
绑定:
<bindings>
<wsHttpBinding>
<binding name="TransportSecurity" maxReceivedMessageSize="2000000">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
我现在的结果是我的 HTTP 服务仍然可以访问,但是 HTTPS 访问只是发送一个空白页面。
我需要 HTTP 来返回错误/页面必须由安全通道查看,并且 HTTPS 是唯一有效的。
我该如何解决?