V relaci Windows PowerShell 5.1 může dřívější komponenta změnit síťový stav .NET v rámci procesu. Běžná úloha na pozadí Start-Job poskytuje pro pozdější webovou operaci samostatný proces PowerShellu.

$job = Start-Job -ArgumentList $uri, $proxyUri -ScriptBlock {
    param($destination, $intermediary)
    $response = Invoke-WebRequest -Uri $destination `
        -Proxy $intermediary -UseBasicParsing -TimeoutSec 30
    $response.Content
}
try {
    Receive-Job -Job $job -Wait -ErrorAction Stop
}
finally {
    Remove-Job -Job $job
}

uri a proxyUri jsou hodnoty dodávané aplikací. Pro veřejný HTTP test nabízí seznam HTTP proxy kandidátní zprostředkující adresy; při porovnávání procesů držte zvolený koncový bod neměnný. Předejte také případné potřebné přihlašovací údaje k proxy přes zamýšlené vstupy úlohy a parametry požadavku. Živý objekt webové relace z rodiče se automaticky znovu nepoužívá.

Úloha má vlastní stav relace; načítejte tam potřebné funkce nebo moduly. Její výstup přechází přes hranici procesu, takže záměrné vrácení obsahu je jednodušší než předpokládat, že deserializovaná odpověď se chová jako původní živý objekt.

Start-ThreadJob používá jiný model spouštění a neposkytuje stejnou izolaci procesu. Samostatný proces také neopraví neplatný koncový bod proxy ani síťovou zásadu. Tuto hranici použijte, když je sdílený stav procesu podstatným rozdílem.

Související články