Можно ли сбросить ServicePointManager?
Я пытаюсь следовать коду, подобному приведенному наКак System.Net.Mail.SMTPClient выполняет локальную привязку IP Я использую Windows 7 и .Net 4.0 на компьютере с несколькими IP-адресами. у меня естьBindIPEndPointDelegate определенный
<code>private static IPEndPoint BindIPEndPointCallback(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount) { string IPAddr = //some logic to return a different IP each time return new IPEndPoint(IPAddr, 0); } </code>
Затем я отправляю свою электронную почту, используя
<code>SmtpClient client = new SmtpClient(); client.Host = SMTP_SERVER; //IP Address as string client.Port = 25; client.EnableSsl = false; client.ServicePoint.BindIPEndPointDelegate = new System.Net.BindIPEndPoint(BindIPEndPointCallback); client.ServicePoint.ConnectionLeaseTimeout = 0; client.Send(msg); //msg is of type MailMessage properly initialized/set client = null; </code>
При первом вызове этого кода вызывается делегат, и независимо от того, какой IP-адрес установлен, он используется. В следующий раз, когда этот код вызывается, делегат никогда не вызываетсяi.e. the first IP Address is used subsequently. Можно ли изменить ситуацию, когда при каждом вызове кода вызывается обратный вызов делегата?
Я думаюServicePointManager (который являетсяstatic class) кэширует результат первого вызова делегата. Можно ли сбросить этот класс? Я не забочусь о производительности.
Спасибо, О. О.