2009-01-23 8 views
5

Actualización 3:
he creado un proyecto de prueba de Visual Studio 2008 y tratado de crear una referencia de servicio al sitio compartido WCF referencia de servicio y recibe el siguiente error:carga de error de equilibrio con un servicio WCF - NLB

There was an error downloading ' http://apps.mydomain/MyService.svc '. The request failed with HTTP status 400: Bad Request. Metadata contains a reference that cannot be resolved: ' http://apps.mydomain/MyService.svc '. Content Type application/soap+xml; charset=utf-8 was not supported by service http://apps.mydomain/MyService.svc '. The client and service bindings may be mismatched. The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'.. If the service is defined in the current solution, try building the solution and adding the service reference again.

ACTUALIZACIÓN 2:
@Nick - Intenté su sugerencia de establecer explícitamente la dirección de cada punto final con la ruta completa de cada servidor y sigo obteniendo el mismo resultado.

Además, cuando intento establecer el atributo listenUri con la URL del sitio compartido, recibo un error de 400 solicitudes erróneas en lugar de un error 404.

ACTUALIZACIÓN
Después de una investigación adicional, hubo algunos conflictos entre el establecimiento y http://apps1.mydomainhttp://apps2.mydomain configuración de IIS y fue capaz de superar el error "Aplicación de servidor no disponible".

Ahora recibo un error 404 cuando trato de buscar en el sitio compartido (http://apps.mydomain), pero puedo buscar la referencia de servicio http://apps1.mydomain y http://apps2.mydomain.

problema original

Mis Companys utiliza Microsoft NLB la carga de tráfico equilibrio entre nuestros servidores IIS. Recientemente implementé un servicio WCF en cada servidor IIS 6 Windows Server 2003 Standard Edition SP1. He recibido el siguiente error cuando intenté busque el nombre de dominio compartida utilizando IE 7:

Server Application Unavailable The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.

Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

El consumidor apuntará a la http://apps.mydomain a utilizar el servicio, pero dominio virtual se le asigna la http://apps1.mydomain o http://apps2.mydomain. Si busco el servicio en cada servidor, no recibo ese error.

El servicio está utilizando actualmente un anónimo basicHttpBinding.

¿Alguien más ha experimentado este problema?

Historia

Antes de este error comenzó a ocurrir, recibí el siguiente mensaje de error cuando broswed a todos los nombres de tres dominios (http://apps.mydomain, http://apps1.mydomain, http://apps2.mydomain):

This collection already contains an address with scheme http. There can be at most one address per scheme in this collection.

he utilizado la ServiceHostFactory clase para personalizar mi archivo .svc para especificar una fábrica de servicio personalizada. Luego creo nuestra fábrica personalizada heredando de ServiceHostFactory y reemplazando según sea necesario.

public class MyFactory : ServiceHostFactory 
{ 
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) 
    { 
     return new ServiceHost(serviceType, baseAddresses[0]); 
    } 
} 

<%@ ServiceHost Language="C#" Factory="MyFactory" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %> 

Respuesta

2

Después de experimentar con diferentes configuraciones para mi servicio WCF y la aplicación de consumo. Creé una referencia de servicio a una de las referencias de servicio de trabajo (http://apps1.mydomain o http://apps2.mydomain) en la aplicación de consumo. Luego cambié la referencia del punto final en la configuración del cliente para apuntar a la dirección WCF del sitio compartido (http://apps.mydomain) y pude consumir y usar el servicio.

1

que he tenido un problema antes con WCF y el equilibrio de carga en los servidores tenía varias tarjetas de red con diferentes direcciones IP y fondo debería simplemente PIC la primera dirección IP que se encontró. Tuvimos que establecer explícitamente la dirección IP en la definición del servicio de cada servidor para que WCF se vincule con la correcta.

+0

@Nick - ¿Puede proporcionar un ejemplo o proporcionar un recurso? –

Cuestiones relacionadas