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

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

Например:

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

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

Это кажется мне очень странным, учитывая, что, как я упоминал ранее, все приложения и службы находятся в одном окне, и большинство других приложений используют имя COMPUTERNAME без проблем.

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

3 ответа

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам