2010-10-14 4 views

Répondre

3

Try this ....

<services>  
    <service name="Service"> 
    <endpoint address="http://localhost:8080/Service/S1" 
       binding="basicHttpBinding" 
       contract="IService1" 

    /> 

    <endpoint address="http://localhost:8080/Service/S2" 
       binding="basicHttpBinding" 
       contract="IService2 " 

    /> 
    </service> 
</services> 
+0

Cela ne semble pas être ce que je cherche. La classe MyService est une classe qui implémente les deux interfaces: IService1 et IService2. Selon l'attribut http://msdn.microsoft.com/en-us/library/ms731303.aspx service.name doit correspondre à un nom de type. Si MyService est le seul type à implémenter les contrats, il ne peut pas être utilisé deux fois dans la configuration. –

+0

@Marcin Seredynski: vous avez raison - le service ** class ** ne peut pas être utilisé deux fois dans la config - un seul possible. ** MAIS: ** vous pouvez toujours définir ** DEUX OPTIONS SEPAREES ** sur deux adresses distinctes, une pour chacun des ** CONTRATS ** que la classe de service implémente - c'est ce que vous cherchez, non? –

1

Vous pouvez simplement utiliser un service avec deux points d'extrémité, comme ceci:

<services>  
    <service name="MyNamespace.MyService"> 
    <endpoint address="/Service/S1" 
       binding="basicHttpBinding" 
       contract="IService1" /> 
    <endpoint address="/Service/S2" 
       binding="basicHttpBinding" 
       contract="IService2 " /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8080/"/> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 

EDIT: Adresse de base Ajouté

+0

Pour une raison quelconque, cette approche ne veut pas fonctionner: Le service ne peut pas être démarré. System.InvalidOperationException: impossible de trouver une adresse de base qui correspond au schéma http pour le point de terminaison avec la liaison BasicHttpBinding. Les schémas d'adresse de base enregistrés sont []. –

+0

Juste une note, j'instancie ServiceHost en lui passant une instance du service et un point final Uri. –

+0

Certes, j'ai mis à jour ma réponse en conséquence. –

Questions connexes