Мне нужно получить доступ к одновременным множественным экземплярам веб-служб со следующим URL-адресом. Веб-службы размещаются в IIS и имеют SSL.
https://services.mysite.com/data/data.asmx
Обычно, когда мы делаем этот процесс вручную, мы переходим один за другим и обновляем файл хоста Windows (c:\Windows\System32\drivers\etc\hosts) следующим образом:
192.1.1.100 services.mysite.com
Я хотел бы автоматизировать процесс и сделать это с помощью многопоточности. Поэтому я не могу изменить файл хоста. Есть ли способ имитации файла хоста, когда мы выполняем HTTP-запрос на С#?
Спасибо!
Если вам известен IP-адрес конечной точки SSL сервера (что не обязательно совпадает с IP-адресом сервера по умолчанию), вы можете просто направить на него веб-сервис? Очевидно, что проверка SSL завершится неудачно, но вы можете отключить это через код...
ServicePointManager.ServerCertificateValidationCallback += delegate
{
return true; // you might want to check some of the certificate detials...
};
Вы можете изменить URL-адрес, который ваш запрос нажимает во время выполнения, примерно так:
svc.Url = "http://firstServer.com";
Итак, если вы создаете программу, проходящую через каждый из ваших желаемых серверов, просто обновите свойство URL напрямую (этот пример берется из веб-служб на основе WSE 3).
Я думаю, что вы получите тот же эффект, установив прокси-сервер этого конкретного запроса на IP-адрес фактического веб-сервера, на который вы хотите отправить запрос.