Причина исключения "System.Net.WebException: удаленное имя не может быть разрешено"? - PullRequest
7 голосов
/ 11 сентября 2009

У меня есть клиентское приложение .NET, которое вызывает мой веб-сервис .NET, который, в свою очередь, вызывает сторонний веб-сервис, например, на www.foo.com.

.NET Client -> 'My Web Service' -> 'Third Party Web Service'

В Visual Studio 2008 все это отлично работает, то есть я запускаю «Мой веб-сервис» в localhost:someport, который успешно вызывает «Сторонний веб-сервис».

Затем я опубликовал «Моя веб-служба» на сервере Windows 2003 Server. Теперь, когда «Моя веб-служба» вызывает «Стороннюю веб-службу», я получаю исключение:
«System.Net.WebException: удаленное имя не может быть разрешено:« www.foo.com »."

Я пробовал следующее:

  1. На сервере, где я развернул «Моя веб-служба», я открыл Internet Explorer и ввел адрес веб-службы 'http://www.foo.com/somewebservice.asmx'. Это было успешно, так как был отображен список доступных методов веб-сервиса.

  2. В файле web.config «Моя веб-служба» я изменил URL «Сторонней веб-службы» от имени веб-сайта до его IP-адреса. Это не удалось, за исключением «System.Net.Sockets.SocketException: операция сокета была попытка подключения к недоступной сети ".

  3. Затем я написал простой тестовый комплект Windows Forms, чтобы просто вызывать «Стороннюю веб-службу». Я запустил этот тестовый комплект на сервере, и он называется «Сторонняя веб-служба». успешно.

  4. Затем я попробовал другой сторонний веб-сервис, который работал так же, как в 1, 2 и 3 выше.

  5. Наконец, я добавил IP-адрес в файл «hosts» на сервере, но получил ту же ошибку «Удаленное имя не может быть разрешено», хотя на этот раз гораздо быстрее! Если бы это была проблема с DNS, я бы не ожидал, что мои тесты 1 и 3 будут работать.

Как мне исправить эту проблему?

Ответы [ 5 ]

7 голосов
/ 11 апреля 2011

От комментария Марка к его собственному вопросу:

В конце концов, это была проблема с прокси-сервером. Сообщение об исключении была красная сельдь. Чтобы исправить это, я создал экземпляр WebProxy, используя IP-адрес и порт нашего прокси-сервера:

WebProxy proxy = new WebProxy( proxyServerIPAddress, Convert.ToInt32( proxyServerPort ) );       
myService.Proxy = proxy;
5 голосов
/ 02 февраля 2012
 <system.net>
        <defaultProxy>
            <proxy
               usesystemdefault = "false"
         />
        </defaultProxy>
    </system.net>

отменить настройку прокси

0 голосов
/ 08 июня 2018

У меня была эта проблема здесь, в 2018 году, на моем модном веб-сайте, который я только что перевел на новый GoDaddy VPS: System.Net.WebException: удаленное имя не может быть решено: 'yada.yada'

Это происходило при попытке отправить SMTP и при попытке связаться с внешним веб-сайтом / API. HttpRequests не удалось. Я все проверил. Попал в настройки IIS. Ничего .. Все выглядело хорошо (я сравнивал значения со своим старым выделенным сервером). Я добавил параметр Proxy 0 в IIS, но не думаю, что это так.

Наконец я заметил, что не могу использовать IE на сервере, чтобы что-то просматривать в Интернете. Я проверил все настройки IE. Все выглядело хорошо. Я переработал пул приложений на веб-сайты. Ничего такого. НАКОНЕЦ, я перезапустил сервер. Когда я снова вошел в систему «Заметил», я мог теперь просматривать веб-сайты, используя IE. Так что я попробовал свой веб-сайт и, наконец, он начал работать. Я не знаю наверняка, что я сделал, если что-нибудь. Или, если сервер был таким новым, некоторые настройки были отключены при первоначальной настройке, и для исправления потребовался холодный перезапуск. Во всяком случае, я был счастлив, наконец, получить это .. Я думаю, что я посмотрел на все 3 раза.

CHEERS

0 голосов
/ 15 марта 2012

У нас возникла проблема с двумя приложениями, работающими на проблемном сервере. Ошибка возникнет только тогда, когда она будет запущена в агенте заданий SQL по расписанию, поэтому было очень трудно изолировать проблему. Оказалось, что у сетевых людей возникли проблемы при переходе с брандмауэра ISA на брандмауэр Forefront. Решение Iamtonyzhou использовать «systemystemdefault» в app.config прекрасно работало как обходной путь, пока не были решены проблемы сетевого брандмауэра. Я не думаю, что когда-либо буду создавать экземпляр объекта WebProxy, потому что наши конфигурации брандмауэра всегда могут быть изменены.

0 голосов
/ 11 апреля 2011

Я думаю, это также может указывать на проблему с DNS, так как я предварительно делаю вывод о своем недавнем опыте с этим исключением. По моему (недавнему) опыту, исключение перестало генерироваться (и регистрировалось моим приложением) «самостоятельно».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...