Сбой запроса с состоянием HTTP 407: требуется аутентификация.
Ок, ребята.. вот сделка ->
Я использовал веб-сервис в своем консольном приложении и могу успешно вызывать его при запуске с локального компьютера.
Проблемы накапливаются, когда я разворачиваю приложение на своем Win 2K8 box. Сначала я обнаружил -> Не удалось определить удаленное имя: "www.www.net" ->, поэтому я добавил WebProxy и подключил его к свойству.Proxy веб-службы.
Следующая ошибка, с которой я столкнулся, -> Запрос не выполнен с состоянием HTTP 407: требуется аутентификация. И я в растерянности идей, чтобы решить то же самое.
Я использовал -> .Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; а также имеют явно определенные прокси-кредиты -> имя пользователя, пароль, домен -> но безрезультатно
Веб-сервис работает нормально при доступе через браузер изнутри сервера.
Любая помощь будет высоко оценен.
Спасибо за ваше время.
Rgds,
2 ответа
Хорошо.. вот что наконец заработало ->
Связался с ребятами из NOC (сети), и они, в свою очередь, включили явный IP-доступ к запросам / ответам / с сервера.
Приведет ли это к нарушению безопасности - ну, я не уверен.
Rgds,
Вы за прокси-сервер? В вашем браузере настроен прокси-сервер? 407 означает "Требуется проверка подлинности прокси", поэтому вам необходимо предоставить учетные данные, с помощью которых вы можете проходить проверку подлинности на прокси-сервере. Мое первое предположение, что вам нужно что-то подобное.
var credentials = new NetworkCredential("username", "password", "domain");
WebProxy proxy = new WebProxy("YourProxyServerUri", true) { Credentials = credentials };
И тогда вы должны использовать объект proxy в качестве прокси-сервера для вашего веб-сервиса.
Вы также можете использовать настроенный прокси-сервер системы:
WebProxy myProxy = (WebProxy) System.Net.HttpWebRequest.GetSystemWebProxy();
Или вы можете даже настроить его в web.config (но я думаю, что здесь невозможно предоставить учетные данные:
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy usesystemdefault="False" proxyaddress="YourProxyServerUri"
bypassonlocal="True" />
</defaultProxy>
</system.net>
Если все работает нормально, вы можете захотеть предоставить какой-либо способ настройки прокси-сервера и учетных данных во время выполнения, вне вашего кода. В противном случае вам всегда придется перекомпилировать что-либо, если что-то в вашей производственной среде или местоположении меняется. Вы можете поместить это в раздел appSettings в web.config, в базу данных, app.config и т. Д.
Также убедитесь, что вы указали правильный номер порта в настройках (например, 192.168.1.100:8888)