无法让 CefSharp Chromium 网络浏览器在目标 PC 上运行

问题描述

我有一个在 Visual Studio 2013 中开发的 Windows VB 应用程序,它结合了 CefSharp Chromium Web 浏览器(使用 NuGet 包的版本 86.0.241)。目标 cpu 设置为 x86,构建输出路径设置为 bin\x86\debug,配置设置为活动(调试),平台设置为活动 (x86)。 Web 浏览器在开发机器上运行良好,但当我将应用部署到目标机器(服务器)时,浏览器显示空白屏幕并冻结。

CefSharp 支持文件包含在部署包 (InnoSetup) 中,但我对我需要部署哪个版本的 VC++ 可再发行组件感到困惑。CefSharp FAQ 指出,对于 65.0.0 及更高版本,VC 的最低要求++2015 需要部署。我让客户端在目标机器上安装了这个版本(当我最初部署这个应用程序时,我没有包含 VC++ 可再发行组件),但浏览器仍然无法工作。我需要部署不同的版本吗?

关于我做错了什么还有其他想法吗?请帮忙!

拉里

以下是 .zip 文件链接,其中包含来自客户端的三台服务器(三台服务器根据需要轮换)的 CEF debug.log 文件

https://www.dropbox.com/s/b3zjxxk79v9xl9b/DataMinerDebugLogs.zip?dl=0

请告诉我这些是否提供了 Chromium 浏览器仅显示空白页面的原因。

谢谢。

我上次评论中提到的日志条目的详细信息: [1228/093028.760:INFO:CONSOLE(32)]“拒绝连接到‘https://collection.decibelinsight.net/i/13878/265573/c.json’,因为它违反了以下内容安全策略指令:”connect -src https://qbonline.api.intuit.net https://cdn.decibelinsight.net https://api.segment.io 'self' https://.intuit.com https://.intuit.com:* https://.intuitcdn.net: https://hosted-shell-assets-us-west-2.s3.us-west-2.amazonaws.com wss://plugin-localhost.intuitcdn.net:* wss://plugin.intuitcdn.net:* https://.intuit。 net wss://.msg.liveperson.net/ws_api/account/ https://*.objectstorage.liveperson.net/ https://scripts.neuro-id.com https://api.neuro-id.com https://logs.neuro- id.com”。 ",来源:https://cdn.decibelinsight.net/i/13878/265573/di.js (32)

来自 Auth 类的代码(打开并显示 Chromium 浏览器的表单):

Imports Intuit.Ipp.OAuth2PlatformClient
Imports System.Net
Imports System.IO
Imports System.Web
Imports CefSharp
Imports CefSharp.WinForms


Public Class Auth
    Public WithEvents browser As ChromiumWebbrowser
    Dim Settings As New CefSettings
    Private Sub Auth_Load(sender As Object,e As EventArgs) Handles MyBase.Load
        oauthClient = New oauth2client(ClientID,ClientSecret,RedirectURL,"production")
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
        Dim scopes As List(Of OidcScopes) = New List(Of OidcScopes)()
        scopes.Add(OidcScopes.Accounting)
        authorizeURL = oauthClient.GetAuthorizationURL(scopes)
        Settings.CefCommandLineArgs.Add("disable-gpu")
        browser = New ChromiumWebbrowser(authorizeURL)
        Me.Controls.Add(browser)
        browser.Dock = DockStyle.Fill
    End Sub

    Private Sub browser_AddressChanged(sender As Object,e As AddressChangedEventArgs) Handles browser.AddressChanged
        Dim Str As String = browser.Address
        If InStr(Str,"&realmID",CompareMethod.Text) Then
            Dim q = HttpUtility.ParseQueryString(browser.Address)
            Dim Code As String = ""
            Dim RealmID As String = ""
            For Each key In q.Keys
                If InStr(key,"code") Then
                    Code = q.Item(key)
                ElseIf InStr(key,"realmId",CompareMethod.Text) Then
                    RealmID = q.Item(key)
                End If
            Next
            Call GetAuthTokens(Code,RealmID)
        End If
    End Sub
End Class

可以忽略“Address_Changed”事件,“Load”事件的前 5 行都与应用中使用的另一个 SDK 相关,但都与 Chromium 浏览器无关。

添加启动代码

Shared Sub Main()
        'This sub executes first.
        Dim Settings As New CefSettings
        Settings.CefCommandLineArgs.Add("disable-gpu")
        cef.initialize(Settings)
        Application.EnableVisualStyles()
        Application.SetCompatibleTextRenderingDefault(False)
        Application.Run(New MainMenu)
    End Sub

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)