Клиентское приложение .NET:как добраться до веб-служб в случае прокси?

StackOverflow https://stackoverflow.com/questions/127241

  •  02-07-2019
  •  | 
  •  

Вопрос

Мы разрабатываем приложение winform .NET 2.0.Приложению необходим доступ Веб-сервисы.Тем не менее, мы сталкиваемся с проблемами с пользователями, использующими прокси.

Популярные приложения для резервного копирования Windows (подумайте Мозы) предоставляют умеренно сложное диалоговое окно, посвященное настройкам прокси.Тем не менее, повторная реализация еще одной логики обработки прокси и графического интерфейса кажется мне пустой тратой времени.

Как лучше всего бороться с прокси-сервером в клиентских приложениях .NET?

Более конкретно, у нас есть случай, когда пользователь записал свои настройки прокси-сервера в Internet Explorer (включая имя пользователя и пароль), поэтому поведение прокси по умолчанию .NET должен работать.Тем не менее, пользователю по-прежнему запрашивается имя пользователя и пароль при запуске IE (оба поля предварительно заполнены, пользователю просто нужно нажать «ОК»), а наше приложение winform по-прежнему не справляется с обработкой прокси.

Что нам следует сделать, чтобы у пользователя не запрашивалось имя пользователя и пароль при запуске IE?

Это было полезно?

Решение

Поместите это в файл конфигурации вашего приложения:

<configuration>
  <system.net>
    <defaultProxy>
      <proxy autoDetect="true" />
    </defaultProxy>
  </system.net>
</configuration>

и ваше приложение будет использовать настройки прокси-сервера из IE.Если вы видите свой веб-сервис в IE с помощью прокси-сервера, вы сможете «увидеть» его из своего приложения.

Другие советы

Используйте классы WebProxy и WebRequest.Включите его в свою собственную библиотеку только один раз и используйте везде, где хотите работать с прокси.

Изучите использование .NET Веб-прокси сорт.Он поддерживает автоматический выбор правильных настроек по умолчанию.

Самый простой способ — использовать настройки прокси из IE Explorer.

Если вы откроете IE, нажмите «ОК» в диалоговом окне прокси-сервера, а затем (оставив IE открытым) попытаетесь подключиться к приложению winforms, будет ли ваше приложение работать?Или ваше приложение не может обрабатывать прокси, несмотря ни на что?

Все ли ваши клиенты, испытывающие проблемы с прокси-сервером, находятся в одной сети (т. е.они все используют один и тот же прокси-сервер)?

Я думаю, что спрашивающий понимает, что ему нужно использовать WebProxy, если пользователю требуется прокси-сервер, вопрос в том, «как мне получить настройки прокси-сервера IE, чтобы мне не приходилось просить пользователя ввести их в мое приложение?»

System.Net.WebProxy.GetDefaultProxy устарел, вам нужно использовать System.Net.WebRequest.DefaultWebProxy.Есть статья, описывающая это на сайте http://msdn.microsoft.com/en-ca/magazine/cc300743.aspx.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top