.net - studio - ¿Puede un servicio tener múltiples puntos finales?
web service c# visual studio 2017 (3)
Tenemos un servicio que tiene algunas configuraciones que solo son compatibles a través de net.tcp. ¿Cuál es la mejor manera de agregar otro punto final? ¿Necesito crear un nuevo host completo?
Puede tener múltiples 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, luego defina cuándo crea 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" />
A lo 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 que puedes llamar:
YourServiceClient client = new YourServiceClient("BasicHttpBinding_IYourService_ENDPOINT2");
Acabo de cambiar el dominio anterior, pero si ha creado una nueva sección de configuración de enlace, puede cambiar el valor de "bindingConfiguration".
Tendrá que crear un nuevo host completo si actualmente está utilizando IIS como su host: IIS solo es compatible con enlaces HTTP y no TCP. Sin embargo, si está utilizando WAS o un servicio de Windows, podrá salirse con la suya simplemente creando un nuevo punto final net.tcp.
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, enlace y contrato. Para un servicio alojado en IIS (es decir, un archivo .SVC), simplemente establezca la dirección del punto final en un URI relativo y asegúrese de que su cliente generado Visual Studio o wsdl.exe especifique el nombre del punto final en su constructor.
Consulte también el artículo de MSDN Puntos finales múltiples .