如何解决无法让 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 举报,一经查实,本站将立刻删除。