2010-08-26 3 views
0

J'ai pris une bibliothèque WCFService dans laquelle j'ai défini des contrats de service multipliés (interfaces) dans des fichiers cs séparés et les implémentés séparément. Par exemple ..Comment définir des points de terminaison pour plusieurs contrats de service implémentés dans différentes classes?

[ServiceContract] 
public interface IService1 
{ 
    [OperationContract] 
    string GetService1Msg(); 
} 

[ServiceContract] 
public interface IService2 
{ 
    [OperationContract] 
    string GetService2Msg(); 
} 

J'ai défini ci-dessus dans des interfaces séparées cs files.Now je les ai mis en oeuvre séparément comme suit.

Ce fichier est Service1.cs:

public class Service1 : IService1 
{ 
    string GetService1Msg() 
    { 
     return "Service1"; 
    } 
} 

Ce fichier est Service2.cs:

public class Service2 : IService2 
{ 
    string GetService2Msg() 
    { 
     return "Service2"; 
    } 
} 

Mon intention est ici d'exposer ci-dessus deux comme deux contrats de services/interfaces externes. Maintenant, ma question est comment définir les points de terminaison pour ces deux interfaces de service dans app.config de cette bibliothèque de service WCF?

Répondre

1

Cette configuration de base est de deux services exposés sur Net.Tcp, chacun avec un point final pour les données et les métadonnées: point final pour

<behaviors> 
    <serviceBehaviors> 
    <behavior name="Metadata"> 
    <serviceMetadata /> 
    </behavior> 
    <serviceBehaviors> 
</behaviors> 
<services> 
    <service name="Namespace1.Service1" behaviorConfiguration="Metadata"> 
    <host> 
    <baseAddresses> 
     <add baseAddress="net.tcp://localhost/Service1" /> 
    </baseAddresses> 
    <endpoint address="" binding="netTcpBinding" contract="Namespace1.IService1" /> 
    <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> 
    </host> 
    </service> 
    <service name="Namespace2.Service2" behaviorConfiguration="Metadata"> 
    <host> 
    <baseAddresses> 
     <add baseAddress="net.tcp://localhost/Service2" /> 
    </baseAddresses> 
    <endpoint address="" binding="netTcpBinding" contract="Namespace2.IService2" /> 
    <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> 
    </host> 
    </service> 
</services> 

Vous avez encore besoin du code pour héberger vos services.

+0

Les points finaux décrits par vous sont bons pour moi. Mais si je dois utiliser la liaison http, alors comment puis-je définir des points de terminaison. Dois-je donner des URL distinctes pour chaque service? – padmavathi

Questions connexes