Nunha sesión de Windows PowerShell 5.1, un compoñente anterior pode cambiar o estado de rede local .NET do proceso. Unha tarefa en segundo plano Start-Job normal proporciona un proceso de PowerShell separado para unha operación 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 e proxyUri son valores que fornece a aplicación. Para unha proba HTTP pública, a lista de proxies HTTP ofrece enderezos intermedios candidatos; manteña estable o punto final escollido ao comparar procesos. Forneza tamén as credenciais de proxy necesarias mediante as entradas da tarefa e os parámetros da solicitude. Un obxecto de sesión web vivo do proceso pai non se reutiliza automaticamente.

A tarefa ten o seu propio estado de sesión; cargue alí as funcións ou módulos necesarios. A súa saída cruza unha fronteira de proceso, así que devolver o contido deliberadamente é máis simple que supoñer que unha resposta deserializada se comporta como o obxecto vivo orixinal.

Start-ThreadJob usa outro modelo de execución e non ofrece o mesmo illamento de proceso. Un proceso separado tampouco repara un punto final de proxy non válido nin unha política de rede. Use esta fronteira cando o estado de proceso compartido sexa a diferenza relevante.

Artigos relacionados