Fehlerbehebung bei AJAX -Problemen in der Webbrowser -Steuerung von C#
Die C# WebBrowser
-Kontrolle kämpft manchmal mit Ajax -Anrufen, was zu einer frustrierenden "Ihre Anfrage wird verarbeitet" hängen. Dieses Verhalten unterscheidet sich erheblich von einem vollständigen IE -Browser, der diese Anrufe normalerweise ohne Probleme behandelt.
Die Lösung liegt häufig darin, die Funktionssteuerung zu konfigurieren, um das Verhalten der WebBrowser
-Kontrolle besser mit dem eines Standard -IE -Instanz auszurichten. Entscheidend ist, dass die Feature "FEATURE_BROWSER_EMULATION"
eine verbesserte Skriptkompatibilität setzt.
Hier ist eine Funktion zur Änderung der Registrierungseinstellungen:
<code class="language-csharp">private void SetBrowserFeatureControlKey(string feature, string appName, uint value) { using (var key = Registry.CurrentUser.CreateSubKey( String.Concat(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\", feature), RegistryKeyPermissionCheck.ReadWriteSubTree)) { key.SetValue(appName, (UInt32)value, RegistryValueKind.DWord); } }</code>
Diese Funktion wird in SetBrowserFeatureControl()
:
<code class="language-csharp">private void SetBrowserFeatureControl() { // Avoid modifying settings in the Visual Studio debugger var fileName = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName); if (String.Compare(fileName, "devenv.exe", true) == 0 || String.Compare(fileName, "XDesProc.exe", true) == 0) return; // Register necessary features (see detailed explanation below for a comprehensive list) // ... }</code>
, um sicherzustellen, dass diese Änderungen vor dem Initialisierungssteuerung WebBrowser
in Ihrem Hauptformular -Konstruktor SetBrowserFeatureControl()
angewendet werden:
<code class="language-csharp">public MainWindow() { SetBrowserFeatureControl(); InitializeComponent(); //... }</code>
Für eine vollständige Liste der empfohlenen Einstellungen zur Funktionssteuerung zur Behebung verschiedener Kompatibilitätsprobleme finden Sie in dieser Ressource: Browser-Feature-Control-Schlüsseleinstellungen Dies bietet eine robustere Lösung für AJAX-bezogene Hangprobleme innerhalb der WebBrowser innerhalb der
Kontrolle.Das obige ist der detaillierte Inhalt vonWarum hängt mein C# Webbrowser -Steuerelement an Ajax -Anrufen und wie kann ich es beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!