У сеансі 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 використовує іншу модель виконання і не забезпечує такої самої ізоляції процесів. Окремий процес також не виправляє недійсну кінцеву точку проксі чи мережеву політику. Використовуйте цю межу, коли спільний стан процесу є суттєвою відмінністю.

Схожі статті