I use CefSharp for browsing websites I get an error that prevents me from opening another web browser even if I closed the one that is already open.
Error image
Error Text (Details)
Bu iletişim kutusu yerine JIT hata ayıklamayı çağırma
hakkında detaylı bilgi için bu iletinin sonuna bakın.
************** Özel Durum Metni **************
System.Exception: CEF can only be initialized once per process. This is a limitation of the underlying CEF/Chromium framework. You can change many (not all) settings at runtime through RequestContext.SetPreference. See https://github.com/cefsharp/CefSharp/wiki/General-Usage#request-context-browser-isolation Use Cef.IsInitialized to guard against this exception. If you are seeing this unexpectedly then you are likely calling Cef.Initialize after you've created an instance of ChromiumWebBrowser, it must be before the first instance is created.
konum: CefSharp.Core.Cef.Initialize(CefSettingsBase cefSettings, Boolean performDependencyCheck, IApp cefApp) C:\projects\cefsharp\CefSharp.Core.Runtime\Cef.h içinde: satır 260
konum: CefSharp.Core.Cef.Initialize(CefSettingsBase cefSettings, Boolean performDependencyCheck, IBrowserProcessHandler browserProcessHandler) C:\projects\cefsharp\CefSharp.Core.Runtime\Cef.h içinde: satır 242
konum: CefSharp.Cef.Initialize(CefSettingsBase settings, Boolean performDependencyCheck, IBrowserProcessHandler browserProcessHandler) C:\projects\cefsharp\CefSharp.Core\Cef.cs içinde: satır 146
konum: _404_Masaüstü_Uygulaması.SlaytBrowser.SlaytBrowser_Load(Object sender, EventArgs e) C:\Users\Harun\source\repos\Uc_Haftada_C_Sharp\404 Masaüstü Uygulaması\404 Masaüstü Uygulaması\SlaytBrowser.cs içinde: satır 31
konum: System.Windows.Forms.Form.OnLoad(EventArgs e)
konum: System.Windows.Forms.Form.OnCreateControl()
konum: System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
konum: System.Windows.Forms.Control.CreateControl()
konum: System.Windows.Forms.Control.WmShowWindow(Message& m)
konum: System.Windows.Forms.Control.WndProc(Message& m)
konum: System.Windows.Forms.ScrollableControl.WndProc(Message& m)
konum: System.Windows.Forms.Form.WmShowWindow(Message& m)
konum: System.Windows.Forms.Form.WndProc(Message& m)
konum: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
konum: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
konum: System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Yüklü Derlemeler **************
mscorlib
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4515.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
404 Masaüstü Uygulaması
Bütünleştirilmiş Kod Sürümü: 1.0.0.0
Win32 Sürümü: 1.0.0.0
CodeBase: file:///C:/Users/Harun/source/repos/Uc_Haftada_C_Sharp/404 Masaüstü Uygulaması/404 Masaüstü Uygulaması/bin/x86/Debug/404 Masaüstü Uygulaması.exe
----------------------------------------
System.Windows.Forms
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4550.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4536.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4390.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4566.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
mscorlib.resources
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_tr_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
Accessibility
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
CefSharp.WinForms
Bütünleştirilmiş Kod Sürümü: 106.0.290.0
Win32 Sürümü: 106.0.290.0
CodeBase: file:///C:/Users/Harun/source/repos/Uc_Haftada_C_Sharp/404 Masaüstü Uygulaması/404 Masaüstü Uygulaması/bin/x86/Debug/CefSharp.WinForms.DLL
----------------------------------------
CefSharp.Core
Bütünleştirilmiş Kod Sürümü: 106.0.290.0
Win32 Sürümü: 106.0.290.0
CodeBase: file:///C:/Users/Harun/source/repos/Uc_Haftada_C_Sharp/404 Masaüstü Uygulaması/404 Masaüstü Uygulaması/bin/x86/Debug/CefSharp.Core.DLL
----------------------------------------
CefSharp
Bütünleştirilmiş Kod Sürümü: 106.0.290.0
Win32 Sürümü: 106.0.290.0
CodeBase: file:///C:/Users/Harun/source/repos/Uc_Haftada_C_Sharp/404 Masaüstü Uygulaması/404 Masaüstü Uygulaması/bin/x86/Debug/CefSharp.DLL
----------------------------------------
CefSharp.Core.Runtime
Bütünleştirilmiş Kod Sürümü: 106.0.290.0
Win32 Sürümü: 106.0.290
CodeBase: file:///C:/Users/Harun/source/repos/Uc_Haftada_C_Sharp/404 Masaüstü Uygulaması/404 Masaüstü Uygulaması/bin/x86/Debug/CefSharp.Core.Runtime.DLL
----------------------------------------
System.Windows.Forms.resources
Bütünleştirilmiş Kod Sürümü: 4.0.0.0
Win32 Sürümü: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_tr_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
************** JIT Hata Ayıklama **************
JIT hata ayıklamayı etkinleştirmek için, bu uygulamanın veya
bilgisayarın (machine.config) .config dosyasında
system.windows.forms bölümünde jitDebugging değeri ayarlanmış olmalıdır.
Ayrıca uygulama hata ayıklama etkin durumdayken derlenmiş
olmalıdır.
Örneğin:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
JIT hata ayıklama etkinken, işlenmemiş özel durumlar
bu iletişim kutusunda işlenmek yerine bilgisayarda kayıtlı
JIT hata ayıklayıcısına gönderilir.
I want to do those actions :
- I can create new cefsharp window without an error whether I closed already opened browsers or not.
Code to create new SlaytBrowser Form
private void ders6btn_Click(object sender, EventArgs e)
{
SlaytBrowser slayt_acici = new SlaytBrowser();
slayt_acici.url = "https://www.google.com";
slayt_acici.Show();
}
Code For SlaytBrowser Form
private void SlaytBrowser_Load(object sender, EventArgs e)
{
CefSettings settings = new CefSettings();
settings.CefCommandLineArgs.Add("disable-gpu", "1");
Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
chrome = new ChromiumWebBrowser(url);
this.panel1.Controls.Add(chrome);
chrome.Dock = DockStyle.Fill;
chrome.AddressChanged = Chrome_AddressChanged;
}
private void Chrome_AddressChanged(object sender, AddressChangedEventArgs e)
{
this.Invoke(new MethodInvoker(() =>
{
url = e.Address;
}));
}
private void button1_Click(object sender, EventArgs e)
{
chrome.Load(url);
}
CodePudding user response:
Only call Cef.Initialize if Cef.IsInitialized == false
private void SlaytBrowser_Load(object sender, EventArgs e)
{
if (!Cef.IsInitialized)
{
CefSettings settings = new CefSettings();
settings.CefCommandLineArgs.Add("disable-gpu", "1");
Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
}
chrome = new ChromiumWebBrowser(url);
this.panel1.Controls.Add(chrome);
chrome.Dock = DockStyle.Fill;
chrome.AddressChanged = Chrome_AddressChanged;
}