2011-12-21 15 views

Respuesta

0

En WCF cuando crea su ChannelFactory puede especificar su punto final (o dirección IP a la que desea conectarse).

Dim factory As ChannelFactory(Of IChatServiceChannel) 
factory = New DuplexChannelFactory(Of IChatServiceChannel)(callbackObject, binding, endpoint) 
Dim Channel = factory.CreateChannel() 

Puede conectarse a tantas IP diferentes como desee, especificando diferentes puntos finales.

+0

no es el punto final sino el punto de partida para la inicialización de la solicitud SOAP. @RyanFishman –

+1

Además, dice que está usando una referencia web, por lo que no puede usar su técnica. –

2

Nunca he hecho esto. Parece complicado.

Primero, lea Ways to Customize your ASMX Client Proxy para aprender la técnica básica de anular el objeto GetWebRequest de su clase de proxy.

Deberá sobrescribir GetWebRequest para que pueda tomar el ServicePoint que se utiliza para realizar la solicitud. Establecerá la propiedad BindIPEndPoint a un delegado que apunta a un método suyo que devolverá la Dirección IP correcta.

public partial class Service1 
{ 
    protected override WebRequest GetWebRequest(Uri uri) 
    { 
     HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri); 
     request.ServicePoint.BindIPEndPointDelegate = ReturnSpecificIPAddress; 
     return request; 
    } 

    private IPEndPoint BindIPEndPoint(
     ServicePoint servicePoint, 
     IPEndPoint remoteEndPoint, 
     int retryCount) 
    { 
     return new IPEndPoint(IPAddress.Parse("10.0.0.1"), 80); 
    } 
} 
Cuestiones relacionadas