Отдельные папки пользовательских данных WebView2 для разных маршрутов прокси
Используйте отдельную среду WebView2 и папку пользовательских данных для второй политики прокси при запуске вместо изменения параметров в работающем браузере.
Прокси, переданный через AdditionalBrowserArguments, становится частью команды запуска процесса браузера WebView2. Изменение этого объекта параметров позже не перезаписывает командную строку работающего процесса.
Для приложения .NET, создающего независимый маршрут, выберите принадлежащую приложению папку пользовательских данных перед инициализацией элемента управления:
var options = new Microsoft.Web.WebView2.Core.CoreWebView2EnvironmentOptions
{
AdditionalBrowserArguments = "--proxy-server=http://proxy.example:8080"
};
var environment = await Microsoft.Web.WebView2.Core.CoreWebView2Environment
.CreateAsync(userDataFolder: profileFolder, options: options);
await browser.EnsureCoreWebView2Async(environment);profileFolder — это доступная для записи папка, выбранная приложением, а browser — существующий неинициализированный элемент управления WebView2. Выполняйте инициализацию через обычный асинхронный жизненный цикл интерфейса. Список HTTP-прокси предлагает кандидатов для флага запуска, когда этот профиль будет делать разрешённые запросы к публичным сайтам.
Новый объект параметров — не новый процесс
Среды, связанные с одной и той же папкой пользовательских данных, могут совместно использовать процесс браузера. Создание другого объекта с этой папкой не является способом назначить ему противоречивые флаги прокси при запуске.
Для одновременных политик через этот механизм запуска используйте отдельные среды с отдельными папками. Это также разделяет данные их сайтов; вторая среда не наследует автоматически состояние входа первой.
Чтобы повторно использовать исходную папку с новыми параметрами запуска, закройте элементы управления, совместно использующие её процесс, и согласуйте завершение перед инициализацией замены. Освобождение одного элемента управления, пока другой поддерживает процесс живым, не является таким переходом.
Держите жизненный цикл среды и папки вместе с приложением. Создание нового процесса браузера для каждого запроса может быть намного дороже, чем поддержание небольшого намеренного набора маршрутов.