0

我已经设置了一个托管两个端点(一个 HTTP 和另一个 HTTPS)的 Web 角色。两个端点都指向Main.svc配置为 RESTful 的同一个服务。这是我的配置(仅显示 HTTPS 配置,因为它是给我带来问题的配置):

<services>
  <service behaviorConfiguration="AthenaBehaviorConfigHttps" name="Athena.LEC.Service.Main">
    <endpoint address="" behaviorConfiguration="AthenaBehaviorEndpointConfig"
      binding="webHttpBinding" contract="Athena.LEC.Service.IMain" />
    <endpoint binding="basicHttpBinding" bindingConfiguration="SecureBasic" name="basicHttpSecure" contract="Athena.LEC.Service.IMain" />
  </service>
</services>

行为配置:

    <behavior name="AthenaBehaviorConfigHttps">
      <serviceMetadata httpsGetEnabled="true" httpsGetUrl="" httpGetEnabled="true" httpGetUrl="" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>

基本的http绑定:

  <basicHttpBinding>
    <binding name="SecureBasic">
      <security mode="Transport" />
    </binding>
  </basicHttpBinding>

在 Azure Web 角色配置上:

<Sites>
  <Site name="Web">
    <Bindings>
      <Binding name="Endpoint1" endpointName="HttpEndpoint" />
      <Binding name="Endpoint2" endpointName="HttpsEndpoint" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="HttpEndpoint" protocol="http" port="7902" />
  <InputEndpoint name="HttpsEndpoint" protocol="https" port="7955" />
</Endpoints>

在 HTTP 上,我已经验证了 restful 调用是成功的。但是,在端口 7955(配置为 Https)上,当我使用浏览器进行调用时,它只会导致一个空页面(通常会返回 JSON 结果)。这是正常的吗?还是我配置错误?谢谢!

4

1 回答 1

1

更改您的绑定以使用 basicHttp*s*Binding 代替。我在这篇文章中展示了如何保护 http 和 tcp 的 WCF 端点。因此,您可以将其用作参考来检查您的解决方案。

于 2013-11-01T13:28:07.547 回答