2017-03-06 3 views
0

Ich verwende als Web-Browser-Steuerelement in meiner Winform-Anwendung.
In einem Button klicken Sie auf Ereignis Ich möchte herunterfahren & ReInitialize WebCore.
Wie kann ich diesen Job machen?
Ich schrieb diese Codes, aber ich habe den Fehler unten:Awesomium Web Browser - Wie WebCore.Shutdown & WebCore.Initialize wieder

Codes:

webBrowser_main.Dispose(); <------> I want to remove this previous awesomium control & recreate it again with same ID 
WebCore.Shutdown(); 

await dl(5000, 7000); 

WebConfig config = new WebConfig() { UserAgent = "blablabla", LogLevel = LogLevel.None }; 
WebCore.Initialize(config); <------> I HAVE ERROR HERE 
WebCore.Initialized += WebCoreInitialzed; 
WebCore.Download += WebCoreDownload; 

WebControl browser = new WebControl(); 
browser.Name = "webBrowser_main"; 
browser.BackColor = System.Drawing.Color.GreenYellow; 
browser.Location = new System.Drawing.Point(12, 29); 
browser.Size = new System.Drawing.Size(960, 565); 
browser.TabIndex = 52; 
browser.ViewType = Awesomium.Core.WebViewType.Offscreen; 
browser.ShowJavascriptDialog += new Awesomium.Core.JavascriptDialogEventHandler(webBrowser_main_ShowJavascriptDialog); 
browser.TargetURLChanged += new Awesomium.Core.UrlEventHandler(webBrowser_main_TargetURLChanged); 
browser.ShowCreatedWebView += new Awesomium.Core.ShowCreatedWebViewEventHandler(webBrowser_main_ShowCreatedWebView); 
browser.DocumentReady += new Awesomium.Core.DocumentReadyEventHandler(webBrowser_main_DocumentReady); 
browser.LoadingFrame += new Awesomium.Core.LoadingFrameEventHandler(webBrowser_main_LoadingFrame); 
browser.LoadingFrameComplete += new Awesomium.Core.FrameEventHandler(webBrowser_main_LoadingFrameComplete); 
browser.MouseMove += new System.Windows.Forms.MouseEventHandler(webBrowser_main_MouseMove); 
browser.Source = new System.Uri("https://www.google.com", System.UriKind.Absolute); 
browser.TabIndex = 0; 
this.Controls.Add(browser); 

Und hier ist der Fehler:

eine Ausnahme vom Typ ‚System. InvalidOperationException 'ist in Awesomium.Core.dll aufgetreten, wurde aber nicht im Benutzercode

behandelt

Weitere Informationen: Sie versuchen, den WebCore neu zu initialisieren. Der WebCore muss nur einmal pro Prozess initialisiert werden und muss nur beendet werden, wenn der Prozess beendet wird.

+0

Fehlermeldung scheint ziemlich klar darüber zu sein – Evk

Antwort

0

Momentan unterstützt Chromium keine "Reinitialisierung" nachdem die Shutdown() Methode aufgerufen wurde. Bibliotheken, die darauf basieren (Awesomium, CEF usw.) unterstützen diese Funktionalität ebenfalls nicht.

Je nachdem, warum Sie diese Funktionalität benötigen, können Sie etwas anderes versuchen (z. B. Cache löschen, Cookies).

+0

Welche Bibliothek ist besser als Awesomium? – MoonLight

+0

Es hängt wirklich von Ihren Bedürfnissen ab. Awesomium ist großartig, aber es ist nicht frei für kommerzielle Entwicklung. Manchmal ist es einfacher, Standard WebBrowser-Komponente zu verwenden. – MonarchL