Веб-сайт возвращает ошибку 500 при использовании частично квалифицированного имени

Веб-сайт возвращает ошибку 500 при использовании частично квалифицированного имени

Я создаю внутренний веб-сайт для размещения веб-сервиса.

На сайте есть запись DNS service.test.company.local. Компания использует ее company.localв качестве зоны DNS для внутренних приложений, и эта запись безмолвно добавляется ко всем запросам DNS.

Таким образом, поиск service.testразрешается по полному имени и правильному IP-адресу.

Сайт IIS 6 настроен на прослушивание порта 80 по IP-адресу, service.testв который он преобразуется.

При попытке доступа к этому сайту через service.test.company.localадрес разрешается и служба отображается корректно.

При попытке доступа к этому сайту через service.testотображается страница с ошибкой IIS, сообщающая о 500 - внутренняя ошибка сервера.

Никаких записей по данному запросу не создается ни в файлах журнала веб-сайта, ни в журнале событий приложения.

Я не могу понять, откуда взялась эта ошибка, и меня действительно расстраивает отсутствие информации, которую мне предоставляет IIS.

Есть идеи по проблеме или решению? Какие еще источники информации я могу проверить?

РЕДАКТИРОВАТЬ:

Недружественная ошибка IIS:

Неизвестный хост


Описание: Невозможно найти сервер с именем "service.test" --- сервер не имеет записи DNS. Возможно, в имени сервера есть ошибка, или сервер больше не существует. Дважды проверьте имя и повторите попытку.


ИЗМЕНИТЬ: 2

Я подозреваю, что это как-то связано с тем, как организация настроила свои записи DNS. Я могу добавить другие префиксные записи в свой файл hosts и локально получить правильное разрешение для сайта.

Я думаю, что эта проблема требует гуру DNS, чтобы предложить потенциальные проблемы. К сожалению, у меня нет полномочий для записей DNS, поэтому я ожидаю много боли.

решение1

После того, как к делу подключилась моя оперативная группа, ответ оказался таким: прокси-сервер пытался обрабатывать запросы, вместо того чтобы направлять их в локальную сеть.

Возвращаемое сообщение об ошибке исходит от прокси-сервера, а не от сервера IIS. Эта информация была получена, когда член команды ops заметил, что HTTP-запросы не отправляли информацию об обходе прокси, как ожидалось.

Правила обхода прокси-сервера включают *.company.local, который работает для адресов без каких-либо других суффиксов и обеспечивает обход для полностью квалифицированного имени, но, по-видимому, не применяется, если используется другой суффикс, например .test.

Исходя из этого, мы решили, что проблема слишком сложна для исправления, и мы собираемся использовать полные имена в качестве «достаточно хорошего» обходного пути.

решение2

Герой программирования,

Вы установили Site hostheader для service.test на определенном веб-сайте. Из-за поддержки нескольких сайтов на одном IP-адресе IIS использует hostheaders для дифференциации при размещении на порту 80.

Если вы нажмете на свойства своего веб-сайта, затем на «Дополнительно», добавите заголовок хоста и вставьте в пустое поле service.test, если DNS разрешается в IP-адрес и т. д., просто убедитесь, что у вас в документах указана правильная страница по умолчанию, и она должна загрузиться.

попробуйте написать hello world, просто чтобы посмотреть, загрузится ли html..

Заказной

решение3

Герой программирования,

Хороший вопрос CodingGorilla, ошибка не та, которая была бы найдена для проблемы hostheader. Внутренняя ошибка, похоже, указывает на что-то другое..

Можете ли вы взглянуть на пул приложений сайта, используете ли вы сетевую службу в качестве идентификатора?http://localhostзагрузить или выдать ошибку «документ не найден»? Вы можете просто попробовать создать новый сайт и попробовать с ним, если локальный хост загружает файл htm, возможно, в метабазе этого конкретного сайта что-то не так.

С уважением

решение4

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

Попробуйте отредактировать файл хоста (c:\windows\system32\drivers\etc\host) и добавить следующую запись:

service.test    127.0.0.1

Это должно гарантировать, что запрос service.test попадет на ваш сервер IIS (при условии, что вы обращаетесь к нему с самого сервера IIS, как вы упомянули в комментарии).

Если это сработает, то проблема, скорее всего, в способе настройки разрешения имен на сервере. То есть домен 'company.local' отсутствует в списке суффиксов поиска DNS.

Связанный контент