Pregunta

Usamos BigIP para equilibrar la carga entre nuestros dos servidores IIS.Recientemente implementamos un servicio WCF alojado en IIS 6 en estos dos servidores Windows Server 2003R2.

Cada servidor está configurado con dos encabezados de host:uno para la dirección del equilibrador de carga y luego un segundo encabezado de host que apunta solo a ese servidor.De esa manera podemos hacer referencia a un servidor específico en el grupo de equilibrio de carga para la depuración.

Entonces, cuando ejecutamos, inmediatamente recibimos el error:

Esta colección ya contiene una dirección con esquema http.Puede haber como máximo una dirección por esquema en esta colección.Nombre del parámetro:artículo

Investigué un poco y podemos implementar un filtro para decirle que ignore uno de los hosts, pero luego no podemos acceder al servidor desde esa dirección.

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://domain.com:80"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>

¿Cuál es la mejor solución en este escenario que nos permitiría acceder a un servicio WCF a través de http://dominio.com/servicio.svc y http://servidor1.dominio.com/servicio.svc?

Si deberíamos crear nuestra propia ServiceFactory como sugieren algunos sitios, ¿alguien tiene algún código de muestra sobre esto?

Cualquier ayuda es muy apreciada.

EDITAR:Necesitaremos poder acceder al servicio WCF desde cualquiera de las dos direcciones, si es posible.

Gracias.

¿Fue útil?

Solución

En tu bigIP Crea 2 nuevos servidores virtualeshttp://servidor1.dominio.com/ http://servidor2.dominio.com/

cree un grupo para cada VS con solo el servidor específico, de modo que no haya equilibrio de carga real y acceda a él de esa manera.Si le faltan IP externas, aún puede usar la misma IP que su nombre de dominio de producción y simplemente usar una regla para dirigir el tráfico al grupo apropiado.

Espero que esto ayude

Otros consejos

La URL que utiliza se basa en los enlaces de IIS.¿El sitio web tiene más de un enlace?Si es así, ¿o el servicio WCF lo utilizan varios sitios?Si es así, entonces eres SOL AFAIK.Nos encontramos con este problema.Básicamente, sólo puede haber un enlace IIS para HTTP; de lo contrario, fracasa.

Además, aquí hay información sobre implementando un ServiceHostFactory.Eso funcionará si es posible que solo se pueda acceder a su servicio WCF a través de 1 dirección (desafortunadamente para nosotros, esto no fue posible).

Cuando necesite probar una máquina específica, puede "evitar" el equilibrio de carga y asegurarse de que se envíe el encabezado de host correcto para mantener WCF satisfecho editando el archivo "hosts" en la máquina desde la que está probando, por ejemplo:

10.0.0.11 a 10.0.0.16 son los seis hosts que se encuentran en el clúster "cluster.mycompany.local", con una dirección IP de carga equilibrada de 10.0.0.10.Al realizar la prueba, puede agregar una línea al archivo de hosts de la máquina que diga "10.0.0.13 cluster.mycompany.local" para poder acceder directamente a la tercera máquina del clúster.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top