Нужно ли делать что-то особенное, чтобы вызовы WCF работали по HTTPS, если HTTP работает нормально? - PullRequest
0 голосов
/ 21 августа 2010

У меня есть две версии одного и того же сайта для проверки концепции: небезопасная версия:

http://www.tlsadmin.com/tlsadmin/PortalHome.aspx

и безопасная версия:

https://www.tlsadmin.com/tlsadmin/PortalHome.aspx

Проблема, с которой я столкнулся, заключается в том, что мои веб-службы на основе WCF не работают под HTTPS. Я что-то упускаю или не понимаю по этому поводу? Я думал, что относительный URL для файла SVC будет охватывать все

<asp:ScriptManager ID="ScriptManager1" runat="server" >
    <Services>
        <asp:ServiceReference Path="~/Services/Contacts.svc" />
        <asp:ServiceReference Path="~/Services/Domains.svc" />
        <asp:ServiceReference Path="~/Services/TreeViewNavigation.asmx" />
        <asp:ServiceReference Path="/Services/FullSoaSchedulerService.svc/json" />
    </Services>
</asp:ScriptManager>

Возможно, мне нужно добавить дополнительную привязку для веб-службы для работы по HTTPS?

<service name="LC.www.nexthop.mx.POC.grid_WebService.Domains">
        <endpoint address="" behaviorConfiguration="LC.www.nexthop.mx.POC.grid_WebService.DomainsAspNetAjaxBehavior"
          binding="webHttpBinding" contract="LC.www.nexthop.mx.POC.grid_WebService.Domains" />
      </service>

1 Ответ

1 голос
/ 21 августа 2010

Вы хотите добавить пользовательскую привязку в свою конфигурацию, чтобы включить ее для HTTPS, установив режим безопасности своей привязки для транспорта.

 <bindings>
   <webHttpBinding>
     <binding name="httpsBinding">
       <security mode="Transport">
       </security>
     </binding>
   </webHttpBinding>
 </bindings>

Режим безопасности по умолчанию - None, что не очень хорошо.с HTTPS.

Затем назначьте эту привязку вашей конечной точке:

<service name="LC.www.nexthop.mx.POC.grid_WebService.Domains">
        <endpoint address="" behaviorConfiguration="LC.www.nexthop.mx.POC.grid_WebService.DomainsAspNetAjaxBehavior"
          binding="webHttpBinding" bindingConfiguration="httpsBinding" contract="LC.www.nexthop.mx.POC.grid_WebService.Domains" />
</service>

Этот пост в блоге помог мне, когда я впервые столкнулся с этой ситуацией.

Надеюсь, это поможет !!

...