2010-08-20 14 views
0

J'ai deux versions de la même preuve de concept de site: La version non sécurisée:Ai-je besoin de faire quelque chose de spécial pour que les appels WCF fonctionnent via HTTPS, ... si HTTP fonctionne correctement?

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

et la version sécurisée:

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

Le problème que j'ai est que mon Les services Web basés sur WCF ne semblent pas fonctionner sous HTTPS. Y a-t-il quelque chose qui me manque ou que je ne comprends pas? Je pensais une URL relative pour le fichier SVC couvrirait tout

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

Peut-être que je dois ajouter une liaison supplémentaire pour le webservice travailler sur 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> 

Répondre

1

Vous voulez ajouter une liaison personnalisée à votre configuration pour activer HTTPS en réglant votre mode de sécurité de la liaison pour le transport.

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

Le mode de sécurité par défaut est None qui ne joue pas bien avec le protocole HTTPS.

puis attribuez-lui que la liaison à votre point final:

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

Ce blog post m'a aidé quand je suis tombé sur cette situation.

Espérons que cela aide !!

+0

+1 et MERCI! Travaillé comme un charme – LamonteCristo

+0

Heureux que cela a fonctionné pour vous. Ouais, ça m'a aussi bloqué au début. Je souhaite que ce n'était pas si intuitif (ce n'était pas du tout intuitif pour moi :)). La chose à garder à l'esprit est que votre environnement de développement peut ne pas être HTTPS, vous devrez donc changer ce mode de sécurité pour DEV. J'ai un processus de construction qui gère cela (pas de sécurité pour DEV, Transport pour QA/PROD). –

+0

wht si, je veux faire cela à la fois SSL et non-SSL – Sreekumar