1

Я пытаюсь заставить автоопределение прокси работать в сети, и оно работает нормально для всех браузеров, включая IE, но Центр обновления Windows не будет работать.

Я настроил веб-сервер для обслуживания того же файла WPAD:http://wpad.ourdomain.com/wpad.dat http://proxy.ourdomain.com/proxy.pac http://proxy.ourdomain.com/

Я установил тип MIME, который будет возвращаться как application/x-ns-proxy-autoconfig, и добавил опцию 252 для нашего DHCP-сервера в URL PAC.

Изначально у меня были концы строк Unix в файле, поэтому я подумал, что это может сделать Windows капризным, поэтому я изменил ее на окончания строк Windows без изменений.

Когда я указываю те же данные прокси-сервера, что PAC выполняет вручную, Центр обновления Windows рад, но когда ему говорят об автоматическом обнаружении или явном использовании нашего URL-адреса PAC, обновление Windows завершается неудачно.

То, как происходит сбой Центра обновления Windows, также очень странно, вы можете перейти на страницу, и она загружается просто отлично, вероятно, потому что IE не имеет проблем с файлом PAC, но, как только вы нажмете кнопку "Экспресс" (или "Пользовательский" в этом случае), затем индикатор выполнения вращается в течение 5 минут или около того, а затем возвращает ошибку о том, что не удалось подключиться.

Это полный контент, возвращаемый из WPAD, включая заголовки HTTP (хотя и анонимный):

$ curl http://wpad.ourdomain.com/wpad.dat -v
* About to connect() to wpad.ourdomain.com port 80 (#0)
*   Trying 10.0.0.80... connected
* Connected to wpad.nuim.ie (10.0.0.80) port 80 (#0)
> GET /wpad.dat HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: wpad.ourdomain.com
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Thu, 22 Mar 2012 14:14:38 GMT
< Server: Apache/2.2.15 (Red Hat)
< Expires: Thu, 22 Mar 2012 17:14:38 GMT
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: application/x-ns-proxy-autoconfig; charset=ISO-8859-1
< 
function FindProxyForURL(url, host) {
    if (isInNet(host, '1.2.0.0', '255.255.0.0')) {
        return 'DIRECT';
    }
    if (isInNet(host, '10.0.0.0', '255.0.0.0')) {
        return 'DIRECT';
    }
    if (isInNet(host, '127.0.0.1', '255.255.255.255')) {
        return 'DIRECT';
    }
    if (isInNet(host, '192.168.0.0', '255.255.0.0')) {
        return 'DIRECT';
    }

    if (localHostOrDomainIs(host, 'somehost.something.com')) {
        return 'DIRECT';
    }
    if (localHostOrDomainIs(host, 'someotherhost.somethingelse.com')) {
        return 'DIRECT';
    }

    return "PROXY proxy1.ourdomain.com:3128;PROXY proxy2.ourdomain.com:3128;DIRECT";
}

//some debug information here in a comment
* Closing connection #0

0