Service WCF exposant 2 points de terminaison sur 2 différents contrats de service

J'ai un service WCF qui je suis en train de configurer de sorte qu'il expose 2 points de terminaison, se référant à différentes fonctionnalités, sous différentes Url.

Ce que je veux, est Service1, d'exposer les méthodes A, B, C, et Service2, d'exposer les méthodes D, E.
Je veux être en mesure de naviguer à la fois localhost/WebServiceName/Service1/Service.svc et localhost/WebServiceName/Service2/Service.svc.

D'autres applications de référencement localhost/WebServiceName/Service1/Service.svc devriez voir l'interface contenant les méthodes A, B et C. Ils ne doivent pas voir quoi que ce soit concernant Service2 interface. Et pour Service2 de même.

Pour l'instant j'ai défini deux interfaces dans mon service WCF, I_Service1 et I_Service2.

J'ai ajouté deux points de terminaison dans mon web.config comme suit:

<endpoint address="http://localhost/WebServiceName/Service1/" binding="wsHttpBinding" contract="WebServiceName.I_Service1" bindingConfiguration="Binding1" />
<endpoint address="http://localhost/WebServiceName/Service2/" binding="wsHttpBinding" contract="WebServiceName.I_Service2" bindingConfiguration="Binding2" />  

La suggestion de l'utilisation de l'adresse complète dans la enpoint vient d'ici: Plusieurs points de terminaison sous IIS

Mais encore, je ne peux pas naviguer localhost/WebServiceName/Service1/Service.svc. - Je recevoir:

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Je peux parcourir avec succès localhost/WebServiceName/Service.svc et le wsdl inclut des méthodes A, B, C, D, E. Mais ce doit être mal dans le comportement que je veux.

Il y a une chose que j'ai manqué?

Mise à JOUR: Suite à cet article, http://allen-conway-dotnet.blogspot.ro/2011/09/exposing-multiple-binding-types-for.html j'ai créé deux différentes contrat de services pour ces points de terminaison. Mais actuellement, je suis en voir seulement Service1 quand je le parcourir. Service2 apparemment n'existe pas (erreur HTTP 404 questions liées à paraître).

La configuration ressemble à:

<services>
   <service behaviorConfiguration="WebServiceName.ServiceBehavior1" name="WebServiceName.Service1">
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="Binding1"
     contract="WebServiceName.I_Service1" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
     <host>
       <baseAddresses>
         <add baseAddress="http://localhost/WebServiceName/Service1/Service.svc" />
       </baseAddresses>
     </host>
   </service>
   <service behaviorConfiguration="WebServiceName.ServiceBehavior2" name="WebServiceName.Service2">
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="Binding1"
     contract="WebServiceName.I_Service2" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
     <host>
       <baseAddresses>
         <add baseAddress="http://localhost/WebServiceName/Service2/Service.svc" />
       </baseAddresses>
     </host>
   </service>
  </services>

OriginalL'auteur Coral Doe | 2012-12-06