В сесия на Windows PowerShell 5.1 по-ранен компонент може да промени мрежовото състояние на .NET в процеса. Обикновена фонова задача Start-Job осигурява отделен процес на PowerShell за следваща уеб операция.

$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 и proxyUri са стойности, предоставени от приложението. За публичен HTTP тест списъкът с HTTP прокси сървъри предлага кандидатни междинни адреси; дръжте избраната крайна точка постоянна, когато сравнявате процеси. Подавайте и нужните данни за достъп до прокси чрез предвидените входни данни на задачата и параметри на заявката. Живият обект на уеб сесия от родителя не се използва повторно автоматично.

Задачата има собствено състояние на сесията; заредете нужните функции или модули там. Изходът ѝ преминава през граница на процес, затова умишленото връщане на съдържанието е по-просто от допускането, че десериализиран отговор се държи като оригиналния жив обект.

Start-ThreadJob използва друг модел на изпълнение и не осигурява същата изолация на процеса. Отделен процес също не поправя невалидна крайна точка на прокси или мрежова политика. Използвайте тази граница, когато споделеното състояние на процеса е съществената разлика.

Подобни статии