W sesji Windows PowerShell 5.1 wcześniejszy składnik może zmienić lokalny stan sieci .NET procesu. Zwykłe zadanie w tle Start-Job zapewnia osobny proces programu PowerShell dla późniejszej operacji sieciowej.

$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 i proxyUri to wartości dostarczane przez aplikację. Do publicznego testu HTTP lista proxy HTTP udostępnia kandydujące adresy pośredniczące; podczas porównywania procesów utrzymuj wybrany punkt końcowy bez zmian. Przekazuj też wymagane poświadczenia proxy przez zamierzone dane wejściowe zadania i parametry żądania. Aktywny obiekt sesji sieciowej procesu nadrzędnego nie jest automatycznie używany ponownie.

Zadanie ma własny stan sesji; ładuj tam potrzebne funkcje lub moduły. Jego dane wyjściowe przekraczają granicę procesu, więc celowe zwrócenie zawartości jest prostsze niż zakładanie, że zdeserializowana odpowiedź zachowuje się jak pierwotny aktywny obiekt.

Start-ThreadJob używa innego modelu wykonywania i nie zapewnia tej samej izolacji procesu. Osobny proces nie naprawia też nieprawidłowego punktu końcowego proxy ani polityki sieciowej. Używaj tej granicy, gdy wspólny stan procesu jest istotną różnicą.

Powiązane artykuły