TL; DR ... наша политика домена молча принудительно подтолкнула настройки локальной сети (включая ссылку на прокси) на мою машину с заранее определенным интервалом, который случился во время разработки, но после того, как я вручную отключил прокси. Поскольку я точно знал, что отключил его для локальных адресов, мне не приходило в голову, что это будет корнем моей проблемы.
На одной из моих машин разработки под управлением Windows Server 2012 R2 я наблюдаю любопытное поведение при локальном разрешении хоста через файл hosts.
[ Описание для воспроизведения ]
C:\Windows\system32>ping baz.inga
Ping request could not find host baz.inga. Please check the name and try again.
C:\Windows\system32>_
127.0.0.1 baz.inga
::1 baz.inga
C:\Windows\system32>ping baz.inga
Pinging baz.inga [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\Windows\system32>_
... Затем я размещаю приложение на localhost: 7890
/ПОЛУЧИТЬ http: //baz.inga: 7890
Есть ли какое-нибудь разумное объяснение, почему это не решается локально? Я протестировал ту же процедуру на машине под управлением Windows 7, и ответ на HTTP-прокси является ресурсом с локальным разрешением.
ЧТО?!?!
Наша групповая политика требует, чтобы настройки локальной сети для домена автоматически передавались на все наши подключенные машины по таймеру.
Хотя я отключил прокси-скрипт при настройке разрешения моего локального хоста, когда таймер сработал, ссылка на прокси-скрипт была принудительно передана через локальную сеть и внесла мою ошибку. Поскольку я уже отключил http-прокси вручную, мне не приходило в голову, что это будет корнем моей проблемы и что это «должно» быть чем-то более сложным.
Вместо создания новой «привилегированной» политики домена, в которой эти строгие параметры не выставляются автоматически, наше решение состоит в том, чтобы определить соглашение, по которому хостам, предназначенным для разрешения на локальном компьютере, будет предоставлен основанный на соглашении «зарезервированный» конечный сегмент полномочий. , который затем будет автоматически разрешен через прокси как ПРЯМАЯ ссылка путем изменения файла proxy.pac, отправленного с контроллера домена, с помощью
if(dnsDomainIs(host, ".reserved")) { return "DIRECT"; }
HTTP 503 - это ответ об ошибке от вашего приложения, а не сбой поиска DNS; если бы запрос не смог достичь вашего приложения из-за того, что не разрешил его имя хоста, он не получил бы ответа 503.
Похоже, ваше разрешение имени в порядке (как и ожидалось и подтверждено ping
работает); ваше приложение вместо этого не работает.