Question

Nous avons un service qui a certains paramètres qui sont pris en charge uniquement sur net.tcp.Quelle est la meilleure façon d'ajouter un autre point de terminaison?Dois-je créer un tout nouvel hôte?

Était-ce utile?

La solution

Un service peut avoir plusieurs points de terminaison sur un hôte unique, mais chaque point de terminaison doit avoir une combinaison unique d'adresse, de liaison et de contrat.Pour un IIS-service hébergé (qui est, une .SVC fichier), il suffit de mettre l'adresse de point de terminaison d'un par rapport URI et assurez-vous que votre Visual Studio ou wsdl.exe généré client spécifie le point de terminaison du nom de son constructeur.

Voir aussi l'article de MSDN Plusieurs Points De Terminaison.

Autres conseils

Vous pouvez avoir plusieurs points de terminaison définis sur le serveur ou le client.

Le faire sur le client, il vous suffit d'éditer votre application.fichier de configuration avec un nouveau point de terminaison avec un nom différent, puis définir lorsque vous créez votre nouveau client.

Par exemple, si vous avez un point de terminaison dans votre application client comme:

<endpoint address="https://yourdomain.com/WCF/YourService.svc"
      binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_IYourService"
      contract="MessagingService.IYourService"  
      name="BasicHttpBinding_IYourService" />

Ce que vous appelez par:

YourServiceClient client = new YourServiceClient();

Vous pouvez ajouter un nouveau point de terminaison avec un nouveau nom:

<endpoint address="https://yourotherdomain.com/WCF/YourService.svc"
      binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_IYourService"
      contract="MessagingService.IYourService"  
      name="BasicHttpBinding_IYourService_ENDPOINT2" />

Qui vous pouvez appeler avec:

YourServiceClient client = new YourServiceClient("BasicHttpBinding_IYourService_ENDPOINT2");

Je viens de changer le domaine ci-dessus, mais si vous faites une nouvelle liaison de section de configuration, vous pouvez simplement modifier la "bindingConfiguration" de la valeur.

Vous aurez besoin de créer un tout nouvel hôte si vous êtes actuellement à l'aide de IIS en tant que votre hôte - IIS prend uniquement en charge HTTP, et non TCP liaisons.Toutefois, si vous utilisez EST ou un service windows, alors vous serez en mesure de sortir avec simplement la création d'un nouveau net.point de terminaison tcp.

Nous pouvons utiliser plusieurs points de terminaison pour le même service.Nous pouvons configurer le web config de la façon suivante aussi

 <service name="MessagePatternDemo.Service1">  
 <endpoint name="ep1" address="/ep1" binding="basicHttpBinding" 
   contract="MessagePatternDemo.IService1"/>  
 <endpoint name="ep2" address="/ep2" binding="wsHttpBinding"  
   contract="MessagePatternDemo.IService1" />  
 <endpoint name="mex" contract="IMetadataExchange" address="mex"  
   binding="mexHttpBinding" />  
 </service>   
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top