2011-10-31 55 views
0

只是为了放置一些上下文。 ASP.NET MVC2 的Web API 5 IIS 7带HTTPS的WCF Web Api

我试图使用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 我看到了测试地址: https://devserver.ad.domain.com/api/serviceapi/SetForeignToken?token=ASDAS-ASDAS-ASDASD-ASDASDAS&foreignToken=AS123ASD 它似乎只是它将DNS解析为机器名称,而不是保持正常的DNS,就像之前没有HTTPS一样。

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

谢谢,

PS。开发环境有一个自我签署的证书,而生产将有一个真正的证书。

回答

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> 
+0

我应该放弃添加nuget包时创建的默认节点吗? – Oakcool

+0

我开始认为我的DNS和/或AD存在问题,如果我准确地填写了您在那里的内容,则会发生“中止”错误。如果我将传输更改为无,那么它可以工作,但我基本上具有与上述相同的行为,其中URL使用本地计算机名称解析,然后失败。 – Oakcool

+0

我正在评价答案,但我不确定这是否解决了我的问题。 – Oakcool

0

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