1

使用我的应用程序的多个实例时,我收到“无法创建浏览器”错误。我按照建议为每个实例使用不同的文件夹。

错误:无法创建浏览器。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);
4

0 回答 0