Хороший вопрос - я не пробовал сам, а только проанализировал код, но AmazonS3Config Class использует закрытый метод configureWebRequest()
, который, в свою очередь, опирается на WebRequest Class для обработки фактического HTTP-соединения.Теперь WebRequest
имеет свойство WebRequest.DefaultWebProxy , которое является public static (т.е. вы можете установить это в своем приложении перед вызовом CreateAmazonS3Client(()
):
Свойство DefaultWebProxy получает или устанавливает глобальный прокси .Свойство DefaultWebProxy определяет прокси-сервер по умолчанию, который используется всеми экземплярами WebRequest , если запрос поддерживает прокси-серверы, и прокси-сервер не задан явно с помощью свойства Proxy. [emphasis mine]
Автоматическое обнаружение прокси, которое вы испытываете, предположительно вызвано соответствующим поведением IE:
Свойство DefaultWebProxy считывает настройки проксииз файла app.config.Если файл конфигурации отсутствует, используются настройки прокси-сервера текущего пользователя Internet Explorer (IE).
Следовательно, я надеюсь, что это можно отключить так же, как и для WebClientСвойство .Proxy , которое вы упомянули, хотя и на уровне класса, как действительно настоятельно рекомендуется в последнем абзаце:
Если для свойства DefaultWebProxy установлено значение null, для всех последующих экземпляровКласс WebRequest , созданный методами Create или CreateDefault , не имеет прокси . [выделено мной]
Добавлено blexandre
Пример кода из этого ответа будет
System.Net.WebRequest.DefaultWebProxy = null;
_s3Client = AWSClientFactory.CreateAmazonS3Client(awsAccessKey, awsSecretAccessKey);
Обратите внимание , что это отключит прокси для каждого веб-запроса, _client
создается с его помощью, так что это безопасно, но будьте осторожны, если у вас может быть больше запросов, ожидающих от WebRequest
класс