2011-12-21 61 views

回答

0

在WCF中,當您創建ChannelFactory時,您可以指定您的端點(或您希望連接的IP地址)。

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

您可以連接到許多不同的IP地址,只要你想這樣通過指定不同的端點。

+0

不是終點,而是SOAP請求初始化的起點。 @RyanFishman – 2011-12-28 08:10:53

+1

另外,他說他使用的是Web引用,所以他不能使用你的技術。 – 2011-12-28 08:15:00

2

我從來沒有這樣做過。看起來很複雜。

首先,閱讀Ways to Customize your ASMX Client Proxy,瞭解覆蓋代理類的GetWebRequest對象的基本技巧。

您將需要覆蓋GetWebRequest,以便您可以抓取用於發出請求的ServicePoint。您將BindIPEndPoint屬性設置爲指向您的方法的代理,該代理將返回正確的IP地址。

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); 
    } 
}