Viss Jint rapporterer at dnsResolve eller myIpAddress manglar under PAC-vurdering, er det ikkje sikkert at meir JavaScript er løysinga. Desse PAC-hjelparane høyrer til miljøet som vertsprogrammet stiller til rådvelde.

Før du kallar FindProxyForURL

Vel det støtta settet med PAC-hjelparar og adressefamiliar, og installer deretter hjelparane i motoren. Bevar kontraktane deira: dnsResolve tek eit vertsnamn, myIpAddress tek ingen argument og treng ein policy for lokalt grensesnitt, og shExpMatch brukar mønster i skallstil. Ein stub som returnerer ein praktisk verdi kan i det stille velje feil rute.

Når den initialiseringa er gjord, kan kjernekallet sjå slik ut i Jint 4.4.0:

var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
    "FindProxyForURL",
    destinationUrl,
    destination.IdnHost
).AsString();

engine er den konfigurerte Jint.Engine; pacSource er det henta PAC-programmet. destination.IdnHost gir vertsnamnet utan port eller sti. Dette kallet hentar ikkje PAC og opnar ikkje ei proxyforbinding.

Etter kallet

Tolk eit resultat som PROXY proxy.example:8080; DIRECT som ei ordna liste over rutekandidatar og reserve. Å sende heile strengen som ein proxy-URL mistar tydinga. Hald ein vurderingsfeil skild frå eit eksplisitt DIRECT-resultat.

Medan det køyrer

Konfigurer avgrensingane til Jint for varigheit, utsegner, minne og avbrot, og eksponer berre dei naudsynte vertsfunksjonane. Avgrense DNS-tilbakekall separat: kontrollar av JavaScript-køyring gjer ikkje eit vilkårleg blokkerande vertskall avbroteleg. Serialiser tilgangen til ein motor eller gi samtidig arbeid eigne instansar; motorar er ikkje trygge for samtidig bruk.

PAC-implementasjonar i nettlesarar kan variere i hjelparutvidingar og URL-detaljane dei eksponerer, særleg for HTTPS. Å matche eitt prøveresultat beviser mindre enn å matche ruteførsla til nettlesaren.

Relaterte artiklar