Программно изменить defaultproxy вместо использования app.config - PullRequest
0 голосов
/ 04 июля 2018

Я создаю настольное приложение в WPF. Это приложение использует экземпляры веб-клиентов для связи с API для сбора данных.

В этом настольном приложении я хочу создать флажок, который позволит пользователю игнорировать прокси-сервер параметров Интернета или использовать параметры автоматического определения по умолчанию.

В этот момент я добавил эту настройку прокси по умолчанию в свой файл app.config, чтобы приложение не пыталось установить связь через прокси и вместо этого игнорировало его.

<system.net>
    <defaultProxy enabled="false" useDefaultCredentials="false">
      <proxy/>
      <bypasslist/>
      <module/>
    </defaultProxy>
</system.net>

Если у меня в app.config нет этого кода, мое приложение будет пытаться использовать прокси-сервер параметров Интернета по умолчанию.

Так что для того, чтобы этот параметр можно было переключить с помощью флажка в меню настроек, мне придется программно изменять эти настройки.

Мне известно о том факте, что когда я устанавливаю прокси по умолчанию для нового веб-прокси, приложение игнорирует прокси-сервер internetoptions.

WebRequest.DefaultWebProxy = new WebProxy();

Но я не могу до конца жизни понять, как я могу установить это обратно на автоматическое определение использования прокси, как до того, как я вставил выше настройки по умолчанию для прокси в app.config.

Я проверяю это с помощью неисправного прокси. Это означает, что если я отправлю запрос API, прокси-сервер не найден и я получу исключение. Когда я игнорирую прокси с кодом app.config, запрос использует мое обычное интернет-соединение и возвращает данные API.

Было бы очень полезно, если бы кто-нибудь мог сказать мне, как я могу программно настроить свое приложение на игнорирование прокси-сервера или, что наиболее важно, на использование настроек автоопределения по умолчанию.

1 Ответ

0 голосов
/ 04 июля 2018

Если вы хотите установить прокси обратно на прокси по умолчанию, вы можете использовать этот статический метод

WebRequest.GetSystemWebProxy();

см. Здесь https://msdn.microsoft.com/de-de/library/system.net.webrequest.getsystemwebproxy(v=vs.110).aspx

...