Estoy aprendiendo wcf y no puedo entender una cosa muy básica.wcf endpoint relative address
Estoy creando un servicio WCF que quiero que se aloje en IIS al igual que la aplicación web con su propia ruta como http://myhost/myapp/
y todo.
estoy creando el proyecto de servicio WCF en VS, tengo un archivo *.svc
describirlo, entonces definir un criterio de valoración sencilla a ella de esa manera:
<endpoint address=""
binding="basicHttpBinding"
contract="wcf_service_auth.IPshService" />
Luego publico este servicio como una Aplicación web de IIS a un directorio virtual, supongamos que es el nombre psh_pub
, por lo que puedo acceder al servicio a través de la url http://localhost/psh_pub/pshservice.svc/
. Me muestra la página de saludos de WCF y me da un enlace a WSDL, que me da una descripción correcta de wsdl.
Eso está bien.
El siguiente paso: deseo agregar un punto final MEX. Añado a config:
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
eso está bien también, el punto final es accesible en la dirección http://localhost/psh_pub/pshservice.svc/mex
y WcfTestClient.exe
me da configuración correcta de esa URL.
Aquí viene el problema.
Tengo un servicio WCF que funciona bajo IIS y quiero agregarle un punto final más. Por ejemplo, que sea un punto final net.tcp
. El IIS está configurado por defecto para aceptar conexiones en el puerto net.tcp
808 y estoy añadiendo net.tcp
protocolo a las propiedades de mi aplicación web, y quiero añadir un punto final a mi servicio como eso:
<endpoint address=""
binding="netTcpBinding"
contract="wcf_service_auth.IPshService" />
y ahora Supongo que mi servicio debe ser accesible a través de la url net.tcp://localhost:808/psh_pub/pshservice.svc
. Pero no lo es. Y cada "cómo" y el manual en la web dice que yo debería especificar la dirección completa en el archivo de configuración de esa manera:
<endpoint address="net.tcp://localhost:808/psh_pub/pshservice.svc"
binding="netTcpBinding"
contract="wcf_service_auth.IPshService" />
Y si lo hago, funciona. Pero si alojo el servicio en otro directorio virtual, tendré que cambiar la configuración. Si lo albergo en el otro servidor, tendré que cambiar la configuración. Si lo albergo en varios servidores, tendré que mantener tantas configuraciones como servidores tengo.
Así las principales preguntas es:
¿Hay alguna forma de WCF para especificar una (o https) punto final de un servicio WCF alojado en IIS net.tcp
sin especificar URL absoluta para ello?
no sé lo que acabo de hacer, pero tengo un punto final net.tcp en funcionamiento con un parámetro de "dirección" vacío. de todos modos, gracias por la ayuda. – pushist1y