Клиент WCF - 407 Аутентификация прокси-сервера при запуске webservice

Я создал простое приложение WinForms, которое использует бесплатный webservice . Но это приложение не может использовать служебную операцию с ошибкой:

Удаленный сервер ответил на непредвиденный ответ: (407) Требуется аутентификация прокси (для выполнения запроса требуется авторизация ISA-сервера.) Доступ к службе веб-прокси запрещен)

Код, который создает работу службы прокси и триггеров:

ChannelFactory<ServiceReference1.USZipSoap> proxy = new ChannelFactory<ServiceReference1.USZipSoap>("USZipSoap");
ServiceReference1.USZipSoap client = proxy.CreateChannel();
string str = client.ValidateZip("12345");
MessageBox.Show(str);

Является ли эта проблема сетью моей компании или это прокси на стороне webservicemart.com

Я искал много информации об изменении файлов конфигурации, создании пользовательской привязки и т.д. Но я чувствую отсутствие более глубокого понимания...
Если эта ошибка касается ISA-сервера нашей корпоративной сети, какую конфигурацию я должен сделать для ISA Server, чтобы не ограничивать меня использованием внешних веб-сервисов?

Ответы

Ответ 1

В вашей конфигурации привязки убедитесь, что для параметра useDefaultWebProxy установлено значение true - он будет использовать конфигурацию, которую вы нашли в IE. В конфигурационном файле добавьте следующий фрагмент, чтобы убедиться, что ваши учетные данные используются для аутентификации на прокси-сервере:

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>

Ответ 2

Кажется, что весь трафик в вашей компании перенаправляется через прокси. Вы можете просмотреть веб-сервис из своего IE и посмотреть его wsdl и вызвать тестовую страницу, чтобы увидеть некоторые результаты. Если это так, попробуйте добавить следующий раздел в свой web.config:

<system.net>   
<defaultProxy>     
<proxy proxyaddress="<your proxy address>" bypassonlocal="true" />
</defaultProxy>
</system.net> 

Вы можете найти адрес прокси-сервера из настроек вашего IE.

ПРИМЕЧАНИЕ. Когда вы переходите в разные среды, вам нужно убедиться, что в этом же случае вам нужно удалить вышеуказанную конфигурацию.

Ответ 3

Это сработало для меня... заменив 10.1.0.50 и номер порта на ваш прокси-сервер IP

  <system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy usesystemdefault="False" proxyaddress="http://10.1.0.50:8080" bypassonlocal="True" />
    </defaultProxy>
  </system.net>

Ответ 5

Когда-нибудь в будущем.

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;