Я никогда этого не делал.Это выглядит сложно.
Во-первых, прочитайте Способы настройки клиентского прокси ASMX , чтобы изучить базовую технику переопределения GetWebRequest
объекта вашего прокси-класса.
Youпотребуется переопределить 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);
}
}