Клиент 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>
Ответ 4
Вы можете установить web.config службы, чтобы разрешить использовать параметры прокси-сервера как определено в Internet Explorer.
Ответ 5
Когда-нибудь в будущем.
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;