Я переместил вопрос сюда со stackoverflow.com
Я пытаюсь настроить веб-сервер IIS 6.0 / Windows Server 2003 с помощью приложения ASP.net.
Когда я пытаюсь пропинговать сервер с клиентского компьютера A, я получаю следующее:
PING 74.208.192.xxx ==> Ping fails
PING 74.208.192.xxx:80 ==> Ping succeeds!
С клиентского компьютера B ОБЕИХ эхо-запросы не работают.
PING 74.208.192.xxx ==> Ping fails
PING 74.208.192.xxx:80 ==> Ping fails with a message
"Ping request could not find host 74.208.192.xxx:80"
Оба клиента A и B находятся в одной подсети. Сервер находится вне (виртуальный сервер, размещенный у интернет-провайдера)
У меня есть приложение ASP.NET в виртуальном каталоге на сервере. В IE или firefox, если я введу http://74.208.192.xxx/subdir/subdir/../Default.aspx
, работает от обоих клиентов! На сервере установлены настройки брандмауэра по умолчанию, но включен веб-сервер (порт 80 открыт).
От клиента А (обратите внимание на другой адрес для ответа при успешном пинге.
C:\Program Files\Microsoft Visual Studio 9.0\VC>ping 74.208.192.xx
Pinging 74.208.192.xx with 32 bytes of data:
Request timed out.
...
Request timed out.
Ping statistics for 74.208.192.xx:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\Program Files\Microsoft Visual Studio 9.0\VC>ping 74.208.192.xx:80
Pinging 74.208.192.xx:80 [208.67.216.xxx] with 32 bytes of data:
Reply from 208.67.216.xxx: bytes=32 time=35ms TTL=54
...
Reply from 208.67.216.xxx: bytes=32 time=33ms TTL=54
Ping statistics for 208.67.216.xxx:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 32ms, Maximum = 54ms, Average = 38ms
От клиента Б
C:\Documents and Settings\user>ping 74.208.192.81
Pinging 74.208.192.81 with 32 bytes of data:
Request timed out.
...
Request timed out.
Ping statistics for 74.208.192.81:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\Documents and Settings\user>ping 74.208.192.81:80
Ping request could not find host 74.208.192.81:80. Please check the name and try
again.
Моя основная проблема в том, что у меня есть файл веб-службы (asmx), а клиентская программа веб-службы не может получить к нему доступ с клиента B, но может получить к нему доступ с клиента A. Я пытаюсь выяснить, почему и подумал, что эта проблема с пингом может пролить свет.
Я могу пинговать yahoo.com оба компьютера.
Вы не можете пинговать номера портов, только IP-адреса.
Если вы хотите проверить, открыт ли данный порт на данном хосте, просто используйте telnet aaa.bbb.ccc.ddd port
, например. telnet 74.208.192.xxx 80
.
Если вы попытаетесь проверить связь с чем-то отличным от простого IP-адреса, могут произойти странные вещи, потому что команда ping и / или базовый стек TCP / IP могут попытаться разрешить эту строку в какой-то Другой адрес, чем тот, с которым вы пытаетесь связаться. Как видите, ваша команда ping выдает следующий результат:
Pinging 74.208.192.xx:80 [208.67.216.xxx] with 32 bytes of data:
Это означает, что на самом деле он пингует не запрашиваемый вами IP-адрес, а совершенно другой.
Как уже упоминалось, причина того, что ваш ping успешен до 74.208.192.xx: 80, заключается в том, что он каким-то образом разрешается на какой-то другой IP-адрес, и это тот, который вы фактически проверяете.
Поскольку вы можете подключиться с помощью браузера от обоих клиентов, я предполагаю, что проблема связана не с подключением как таковым, а, возможно, с вашим клиентом веб-службы или межсетевым экраном на клиентских компьютерах, мешающим ему.
Я бы проверил, есть ли у вашего клиента (я полагаю, SOAP) способ распечатать диагностическую информацию. Это может позволить вам выяснить, что не так.
Вы также можете попробовать загрузить страницу asmx в своем браузере (-ах) и посмотреть, что появляется всплывающее окно или возникают ли какие-либо ошибки. Когда я загружаю asmx в браузер, я получаю HTML-страницу со списком методов; посмотрим, удастся ли вам добиться этого от обоих ваших клиентов.
Пожалуйста, выполните трассировку к серверу, чтобы увидеть, где ваше соединение теряется. Также настройте мониторинг пакетов на своем маршрутизаторе, чтобы увидеть, поступают ли ваши запросы ping или возвращаются.
Я не уверен, можем ли мы пинговать номера портов.
На клиенте A 74.208.192.xx: 80 разрешается в 208.67.216.xxx, и поэтому эхо-запрос проходит успешно. Вы проверили файл hosts на клиенте A?
У меня такая же проблема. Когда я сделал tracert, у меня был такой же тайм-аут запроса. Но я смог пропинговать клиента b с сервера. При выполнении трассировки от сервера к клиенту b. Я видел полное доменное имя (полное доменное имя) клиента b. затем я вернулся к клиенту и использовал тот же fqdn, который был таким же в моем случае, и заменил часть ip на ip моего целевого сервера в этом fqdn. Я смог проверить связь с сервером.
Резюме: если вы не можете проверить связь с сервером, вы можете попробовать выполнить проверку связи с сервером с помощью FQDN, что в моем случае решило проблему.
Лучший :)