我有一个多IP地址的系统.但是我被允许仅从一个IP地址发起SOAP请求.我如何在VB.NET中获得它.
解决方法
我从来没有这样做过.看起来很复杂.
首先,阅读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); } }