Carpetas de datos de usuario de WebView2 separadas para distintas rutas de proxy
Use un entorno WebView2 y una carpeta de datos de usuario distintos para una segunda política de proxy al iniciar, en lugar de editar las opciones de un navegador en ejecución.
Un proxy proporcionado mediante AdditionalBrowserArguments pasa a formar parte del comando de inicio del proceso del navegador WebView2. Editar ese objeto de opciones más tarde no reescribe la línea de comandos del proceso en ejecución.
Para una aplicación .NET que crea una ruta independiente, elija una carpeta de datos de usuario propiedad de la aplicación antes de inicializar el control:
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 es un directorio escribible seleccionado por la aplicación, y browser es el control WebView2 existente sin inicializar. Ejecute la inicialización a través del ciclo de vida asíncrono normal de la interfaz. La lista de proxys HTTP ofrece candidatos para el indicador de inicio cuando ese perfil vaya a realizar solicitudes permitidas a sitios públicos.
Un objeto de opciones nuevo no es un proceso nuevo
Los entornos asociados con la misma carpeta de datos de usuario pueden compartir el proceso del navegador. Crear otro objeto con esa carpeta no es una forma de asignarle indicadores de proxy contradictorios al iniciar.
Para políticas simultáneas mediante este mecanismo de inicio, use entornos separados con carpetas separadas. Eso también separa sus datos de sitios web; un segundo entorno no hereda automáticamente el estado de inicio de sesión del primero.
Para reutilizar la carpeta original con nueva configuración de inicio, cierre los controles que comparten su proceso y coordine el apagado antes de inicializar un reemplazo. Desechar un control mientras otro mantiene vivo el proceso no es esa transición.
Mantenga el ciclo de vida del entorno y la carpeta junto con la aplicación. Crear un proceso de navegador nuevo para cada solicitud puede ser mucho más costoso que mantener un conjunto pequeño y deliberado de rutas.