Назад | Перейти на главную страницу

Использование имени компьютера в URL-адресе вызывает проблемы при подключении к веб-службам

Все приложения, над которыми я работаю, обращаются к тем же 8 или около того веб-сервисам, которые есть у нас. Все эти службы и приложения находятся в одном ящике и используют имя компьютера при попытке подключения к веб-службе.

Например:

Если у меня есть веб-служба MapDataService и у меня есть приложение, которое обращается к ней, оно будет обращаться к ней по URL-адресу: http: //COMPUTERNAME/MapDataService/MapDataService.asmx.

Это работает в большинстве приложений, обращающихся к веб-сервису. Однако у нас есть несколько приложений, которые при использовании имени компьютера в URL-адресе не получают данные, возвращаемые службой (фактически возвращается 503). Чтобы заставить его работать, IP-адрес системы должен использоваться вместо COMPUTERNAME.

Это кажется мне очень странным, учитывая, что, как я упоминал ранее, все приложения и службы находятся в одном устройстве, и большинство других приложений без проблем используют ИМЯ КОМПЬЮТЕРА.

Может ли кто-нибудь дать мне некоторое представление о том, что может быть причиной этого? У нас нет доступа к журналам IIS, и те журналы, которые мы получили (это на сайте клиента), не очень полезны.

Я согласен с BillN.

AWinters, ошибки 503 должны отправляться сервером клиенту только тогда, когда «сервер в настоящее время не может обработать запрос из-за временной перегрузки или обслуживания сервера». (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) Возможно, ваш клиент сообщает об этом неправильно, если сервер не отвечает (в течение определенного времени).

Попробуйте выполнить PING COMPUTERNAME от тех клиентов, которые не могут подключиться к веб-службе. Если предположить, что сервер в целом отвечает на эхо-запросы, это покажет вам, правильно ли работает DNS.

Вы можете вручную ввести COMPUTERNAME сервера в файл HOSTS клиента, чтобы увидеть, поможет ли это, но если это так, есть еще одна проблема с DNS, и редактирование HOSTS - это просто лейка. Если возможно, устраните реальную проблему.

Также возможно, основываясь на ограниченной информации, которая у нас есть, что сервер действительно иногда временно перегружается. Если вы всегда получаете 503 при использовании COMPUTERNAME и никогда не получаете его при использовании IP-адреса, это, вероятно, не так.

Вы говорите, что есть несколько приложений, которые не могут получить доступ к веб-сервису с именем computername. Могут ли другие приложения получить доступ к этому веб-сервису с именем компьютера? Можно вручную с помощью браузера?

Если одни приложения работают против одного веб-сервиса, а другие - против одного и того же веб-сервиса, я бы предположил, что это проблема с внутренними настройками в клиентских приложениях (строка подключения и т. Д.)

Если все приложения работают с определенным веб-сервисом, я бы посмотрел, используете ли вы заголовки хоста или что-то, что может блокировать определенные имена DNS. Или что конфигурация приложения использует правильную аутентификацию и т. Д.

Все ли приложения работают в одной системе? Похоже, что некоторые приложения не разрешают имя хоста в IP-адрес, поэтому вы должны сделать это за них. Я бы посмотрел на проблемы с DNS / файлом хоста.