Ein über AdditionalBrowserArguments bereitgestellter Proxy wird Teil des Startbefehls des WebView2-Browserprozesses. Das spätere Bearbeiten dieses Optionsobjekts schreibt die Befehlszeile des laufenden Prozesses nicht neu.

Wählen Sie für eine .NET-Anwendung, die eine unabhängige Route erstellt, vor der Initialisierung des Steuerelements einen anwendungseigenen Benutzerdatenordner:

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 ist ein beschreibbares, von der Anwendung gewähltes Verzeichnis, und browser ist das vorhandene, nicht initialisierte WebView2-Steuerelement. Führen Sie die Initialisierung über den normalen asynchronen Lebenszyklus der Benutzeroberfläche aus. Die HTTP-Proxy-Liste bietet Kandidaten für das Startflag, wenn dieses Profil zulässige Anfragen an öffentliche Websites richtet.

Ein neues Optionsobjekt ist kein neuer Prozess

Umgebungen, die demselben Benutzerdatenordner zugeordnet sind, können den Browserprozess gemeinsam nutzen. Ein weiteres Objekt mit diesem Ordner zu erstellen ist kein Weg, ihm widersprüchliche Proxy-Flags beim Start zuzuweisen.

Für gleichzeitige Richtlinien über diesen Startmechanismus verwenden Sie getrennte Umgebungen mit getrennten Ordnern. Das trennt auch ihre Websitedaten; eine zweite Umgebung erbt nicht automatisch den Anmeldezustand der ersten.

Um den ursprünglichen Ordner mit neuen Starteinstellungen wiederzuverwenden, schließen Sie die Steuerelemente, die seinen Prozess teilen, und koordinieren Sie das Herunterfahren, bevor Sie einen Ersatz initialisieren. Ein Steuerelement freizugeben, während ein anderes den Prozess am Leben hält, ist nicht dieser Übergang.

Behalten Sie den Lebenszyklus von Umgebung und Ordner bei der Anwendung. Für jede Anfrage einen neuen Browserprozess zu erzeugen, kann viel teurer sein, als eine kleine, bewusst gewählte Menge von Routen zu unterhalten.

Ähnliche Artikel