Интересный квест поимел на днях. Поставили на сервер свой софт, проверили, отправили заказчику. Стали запускать у заказчика - облом, системная служба не хочет опрашивать железяки по http, запрос отваливается по таймауту - нет ответа. Железяки живые, из браузера с того же сервера замечательно опрашиваются.
Служба запускается под системной учёткой
Брандмауер винды конечно первым делом покрутил - дело не в нём. Запустил
Microsoft Network Monitor, от службы вообще никаких запросов не видно, ОК, смотрю, а кудаж она пытается соединиться
Опа, а адресок-то знакомый - этож наш конторский прокси. Ага,
сказали суровые сибирские мужики и набрали
netsh.exe winhttp show proxy
Фигвам, сказала netsh.exe
Пришлось обратиться к всемирному разуму,
разум сказал, что надо настраивать прокси для системной учётки, для этого взять
PsExec от Sysinternals и сделать так
psexec -i 0 -s "C:\Program Files\Internet Explorer\iexplore.exe"
-i - Запускаемая программа получает доступ к рабочему столу указанного сеанса
-s - Процесс запускается из системной учетной записи.
Появляется запрос
давим
Просмотреть сообщение, видим Internet Explorer, запущенный под системной учёткой, а в его настройках - таки да, забит конторский прокси. После чистки порчу со службы как рукой сняло.
Остался правда вопрос как оно туда попало, что-то я не помню, чтоб при установке софта занимался вызовом системного призрака IE и задания в нем адреса прокси.