Клиент WCF - проверка подлинности прокси-сервера 407 требуется при запуске веб-службы - PullRequest
15 голосов
/ 04 января 2012

Я создал простое приложение WinForms, которое использует бесплатный веб-сервис http://www.webservicemart.com/uszip.asmx. Но это приложение не может использовать служебную операцию с ошибкой:

Удаленный сервер вернулсянеожиданный ответ: (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, чтобы не ограничивать меня от использования внешних веб-сервисов?

Ответы [ 5 ]

43 голосов
/ 04 января 2012

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

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>
2 голосов
/ 15 марта 2013

Это сработало для меня ... замена 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>
1 голос
/ 04 января 2012

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

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

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

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

0 голосов
/ 20 сентября 2017

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

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
0 голосов
/ 26 августа 2013

Вы можете установить web.config службы, чтобы разрешить использовать настройки прокси , как это определено в Internet Explorer .

...