PAC-vurdering i Jint: manglande hjelparar og rutesvar
Å kalle FindProxyForURL er eitt steg: verten må implementere PAC-hjelparar, avgrense køyringa og tolke rutenettlista som blir returnert.
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.