使用我的应用程序的多个实例时,我收到“无法创建浏览器”错误。我按照建议为每个实例使用不同的文件夹。
错误:无法创建浏览器。System.ComponentModel.Win32Exception (0x80004005):访问在 System.Diagnostics.Process.GetProcessHandle(Int32 访问,布尔 throwIfExited) 处被拒绝访问。 Process.GetProcessTimes() 在 System.Diagnostics.Process.get_StartTime() 在 .( Int32 ) at . () at ..ctor( ,BrowserType)在 . ( ,浏览器上下文,
我的代码:
private void Application_Startup(object sender, StartupEventArgs e)
{
if (e.Args[0] == "brow1") Test.MainWindow.browserCtx = "brow1")
else if (e.Args[0] == "brow2") Test.MainWindow.browserCtx = "brow2")
else Test.MainWindow.browserCtx = "brow3")
Test.MainWindow.site = e.Args[1];
}
programPath = System.AppDomain.CurrentDomain.BaseDirectory;
BrowserPreferences.SandboxEnabled = true;
BrowserPreferences.ChromiumDirName = programPath + "Browser";
BrowserPreferences.CrashDumpDir = programPath + "Browser\\CrashDump\\";
browser = BrowserFactory.Create(new BrowserContext(new BrowserContextParams(programPath + "Browser\\Cache\\" + browserCtx)));
webView = new WPFBrowserView(browser);
var defaulDialogtHandler = webView.Browser.DialogHandler;
webView.Browser.DialogHandler = new CustomDialogHandler(defaulDialogtHandler);
webView.Browser.PopupHandler = new CustomPopupHandler(webView);
webView.Browser.LoadHandler = new CustomLoadHandler();
browser.ContextMenuHandler = new CustomMenuHandler((FrameworkElement)webView, true);
browser.Preferences.WebRTCIPHandlingPolicy = BrowserPreferences.WebRTCIPHandlingPolicyEnum.DisableNonProxiedUdp;
mainLayout.Children.Add(webView);
browser.Preferences.AllowDisplayingInsecureContent = true;
browser.Preferences.FireKeyboardEventsEnabled = false;
browser.Preferences.FireMouseEventsEnabled = false;
browser.Preferences.JavaScriptEnabled = true;
browser.Preferences.JavaScriptCanAccessClipboard = false;
browser.Preferences.LocalStorageEnabled = true;
browser.Preferences.PluginsEnabled = true;
browser.Preferences.WebAudioEnabled = false;
browser.FinishLoadingFrameEvent += Browser_FinishLoadingFrameEvent;
browser.LoadURL(site);