Pregunta

Tenemos un servicio que tiene algunas configuraciones que solo se admiten en net.tcp.¿Cuál es la mejor manera de agregar otro punto final?¿Necesito crear un host completamente nuevo?

¿Fue útil?

Solución

Un servicio puede tener múltiples puntos finales dentro de un solo host, pero cada punto final debe tener una combinación única de dirección, vinculación y contrato.Para un servicio alojado en IIS (es decir, un archivo .SVC), simplemente establezca la dirección del punto final en un relativo URI y asegúrese de que su cliente generado por Visual Studio o wsdl.exe especifique el nombre del punto final en su constructor.

Consulte también el artículo de MSDN. Múltiples puntos finales.

Otros consejos

Puede tener varios puntos finales definidos en el servidor o en el cliente.

Para hacerlo en el cliente, solo necesita editar su archivo app.config con un nuevo punto final con un nombre diferente y luego definir cuándo creará su nuevo cliente.

Por ejemplo, si tiene un punto final en su aplicación cliente como:

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

Al que llamas por:

YourServiceClient client = new YourServiceClient();

Puede agregar un nuevo punto final con un nuevo nombre:

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

Con el que puedes llamar:

YourServiceClient client = new YourServiceClient("BasicHttpBinding_IYourService_ENDPOINT2");

Acabo de cambiar el dominio anterior, pero si creó una nueva sección de configuración de enlace, podría simplemente cambiar el valor "bindingConfiguration".

Deberá crear un host completamente nuevo si actualmente utiliza IIS como host; IIS solo admite enlaces HTTP y no TCP.Sin embargo, si está utilizando WAS o un servicio de Windows, podrá crear simplemente un nuevo punto final net.tcp.

Podemos utilizar múltiples puntos finales para el mismo servicio.También podemos configurar la configuración web de la siguiente manera.

 <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>   
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top