En una sessió de Windows PowerShell 5.1, un component anterior pot canviar l'estat de xarxa .NET local del procés. Una tasca en segon pla Start-Job ordinària proporciona un procés PowerShell separat per a una operació web posterior.

$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 són valors que proporciona l'aplicació. Per a una prova HTTP pública, la llista de proxys HTTP ofereix adreces intermediàries candidates; manteniu estable el punt final triat en comparar processos. Proporcioneu també les credencials de proxy necessàries mitjançant les entrades de la tasca i els paràmetres de la sol·licitud. Un objecte de sessió web viu del procés pare no es reutilitza automàticament.

La tasca té el seu propi estat de sessió; carregueu-hi les funcions o mòduls necessaris. La seva sortida travessa una frontera de procés, així que retornar el contingut deliberadament és més simple que suposar que una resposta deserialitzada es comporta com l'objecte viu original.

Start-ThreadJob fa servir un altre model d'execució i no ofereix el mateix aïllament de procés. Un procés separat tampoc no arregla un punt final de proxy no vàlid ni una política de xarxa. Feu servir aquesta frontera quan l'estat de procés compartit sigui la diferència rellevant.

Articles relacionats