CEF锐利显示网页,但CefWebBrowser.IsBrowserInitialized始终为假

时间:2018-11-14 22:03:48

标签: c# cefsharp

在这里,我使用CEF Sharp x86(最新的cef.redist 3.3497.1841为67)的情况非常奇怪,但最初报告为v49。这太疯狂了,所以我只是在寻找,也许有人偶然发现了类似的东西。我们将WPF ChromiumWebBrowser托管在WinForms UserControl中(通过ElementHost),并且在第3方应用程序中运行,并且它不会以任何方式进行交互(因此它是此主机应用程序的插件)。对于大约100个用户而言,一切正常,但是对于一个人来说,会发生这种情况:网页加载并正确显示,但是ChromiumWebBrowser.IsBrowserInitialized标志始终为false。

现在,“用户”不是Windows帐户,只是完全不相关的第三方应用程序中的用户,可以使用第三方用户ID /密码验证登录-与任何Windows设置都不相关。因此,听起来很疯狂,我们已经在多个Windows帐户的多台计算机上尝试了该操作,并为该应用程序使用了不同的用户ID,结果仍然相同-对于这个用户ID,对于其他用户来说,这是有问题的-都可以。

我想知道是否有人对CEF有如此疯狂的经历。我押注.NET层中的一些错误,因为实际的浏览器可以正常工作-呈现网页后,您可以正常浏览。另外,这与CEF作为此确切的第三方应用程序的插件运行有关-如果我使用相同的设置运行测试Winform应用程序-用户控制->元素主机-> WPF ChromiumWebBrowser,一切正常。 CEF日志没有太大帮助,除了可以的情况外没有其他错误。

我没有附加任何代码或日志,在这种情况下我认为这没有帮助。只是为了获得更多背景知识,该插件已经存在了将近3年,除了这种情况,没有报告过任何错误。为了清楚起见-我需要此标志为true才能将JS调用注入插件。

1 个答案:

答案 0 :(得分:1)

好吧,原来是在单个进程中打开2个浏览器实例的情况。一个浏览器窗口正在初始化并且工作正常,第二个正在显示页面,但是报告“未初始化”。只有当我去拜访客户并实际看到该情况时,情况才变得很清楚,因为他们没有报告他们打开了第二个实例。在这种情况下,他们不需要第二个实例,因此就解决了,也许我们的代码有错误,一旦我们通过分析做更多的事情,我将继续解决这个问题。