0

只是为了提供一些背景。ASP.NET MVC2 Web API 5 IIS 7

我正在尝试使用 WCF Web API,一旦启用 HTTPS,它就会停止工作。

我注意到的事情:我的 API 调用是通过 jquery 进行的,我有类似这样的 url: http ://www.domain.com/api/serviceApi/SetForeignToken?token=ASDAS-ASDAS-ASDASD-ASDASDAS&foreignToken=AS123ASD

当我使用 API 测试 UI 时,我通过: https ://www.domain.com/api/serviceApi/Test 我看到测试 url: https://devserver.ad.domain.com/api/serviceapi/SetForeignToken? token=ASDAS-ASDAS-ASDASD-ASDASDAS&foreignToken=AS123ASD 看起来很奇怪,它将 DNS 解析为机器名称,而不是像以前没有 HTTPS 那样保持正常的 DNS。

有谁知道如何配置 API 以使其在 HTTPS 下工作,或者甚至有可能吗?

谢谢,

PS。开发环境具有自签名证书,而生产环境将具有真实证书。

4

2 回答 2

1

是的,WCF Web API 支持 HTTPS。我相信有几种方法可以做到这一点(包括代码选项)。我只希望在一台服务器上启用 https,所以我在 web.config 中执行了此操作:

  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
        <baseAddressPrefixFilters>
            <add prefix="https://subdomain.example.com"/>
        </baseAddressPrefixFilters>
    </serviceHostingEnvironment>
    <bindings>
      <webHttpBinding>
        <binding>
          <security mode="Transport" />
        </binding>
      </webHttpBinding>
    </bindings>
  </system.serviceModel>  
于 2011-10-31T21:54:13.143 回答
0

多谢你们。花了一整天的时间弄清楚这一点。只需在 web.config 中添加代码就可以了。

于 2013-01-07T16:24:12.923 回答