2010-02-18 6 views
1

У меня есть консольное приложение, которое общается с веб-службой. Оба они находятся на одной машине.Не удается получить доступ к веб-сервису при подключении к сети :: HTTP 407

Когда я обращаюсь к веб-сервису с отключенной ЛВС, он подключается без проблем. Но если локальная сеть включена и подключена к нашей офисной сети, я получаю эту ошибку:

«Требуется аутентификация HTTP 407 Proxy. Для выполнения запроса требуется авторизация аутентификации ISA Server. Доступ к службе веб-прокси запрещен».

Мы уже три дня охотились на источник проблемы. Мы пробовали все, о чем мы можем думать. Любые идеи, что вызывает проблему?

Дополнительные примечания: - Аппарат находится в рабочей группе, но с DNS-суффиксом (computer.local). При доступе к веб-сервиса, мы вводим адрес как «http://machine.computer.local/service.asmx»

  • Я разговаривал с ИТ парней, и они сказали, что мы не имеем сервер ISA установлен

  • Там нет «прокси msgstr "установить в IE.

  • Машина в отличном состоянии.

+0

Я бы начал с некоторых сетевых отладочных инструментов, таких как Wireshark и Fiddler2. – Foole

+0

Спасибо за подсказку. :) По вашему мнению, что более удобно для пользователей? – Ian

+0

Wireshark менее удобен, но лучше подходит для более низкого уровня отладки. Я бы попробовал Wireshark только после того, как не смог решить проблему с Fiddler2. NB Wireshark не будет работать на интерфейсе loopback под Windows. – Foole

ответ

1

Видимо, ИТ ребята, что я говорил с не знает о сервере общекорпоративной ISA.

Используя Wireshark, я сбросил данные в файл HTML (стандартную страницу с ошибкой HTTP 407). Он четко показал Hostname и IP-адрес ISA-сервера.

Короче говоря, проблема заключается в ISA-сервере. Хотя по-прежнему остается загадкой, почему машина свяжется с ISA-сервером, если сервер IIS, на котором размещен сайт, находится на самой машине (localhost).

Обход проблемы: используйте свойство bypassonlocal.

<configuration> 
    <system.net> 
     <defaultProxy> 
     <proxy proxyaddress="<ISA-SERVER>" bypassonlocal="true"/> 
     </defaultProxy> 
    </system.net> 
</configuration> 
0

Попробуйте добавить следующую строку в файл hosts:

127.0.0.1 machine.computer.local 
+0

Мы уже пробовали это. Проблема в том, что когда мы пытались выполнить ping «machine.computer.local» локально, возвращаемый IP не является 127.0.0.1. – Ian

+0

Я думаю, что у вас будет больше шансов получить правильный ответ в serverfault.com. Голосование для миграции. –

0

Под раздел "Конфигурация" в Web.config добавить следующее:

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

Тогда работает как шарм!