标签: webview2

如何修复 VS2022 管理员时出现 msedgewebview2 错误?

我在 Windows 安装上安装了相对较新的 Visual Studio 2022。我所做的工作经常需要管理权限(本地 IIS)。为此,我有两个用户,一个登录 Windows 的“普通”帐户和一个管理员帐户。使用管理员帐户启动VS2022时,不断出现错误。特别是在调试过程中会发生这种情况,内容如下:

Microsoft Edge can't read and write to its data directory:

C:\Users\<administrator_user>\AppData\Local\Temp\VSWebView2Cache\<guid>\EBWebView
Run Code Online (Sandbox Code Playgroud)

似乎发生的情况是,Microsoft Edge WebView2 (msedgewebview2.exe) 以登录 Windows 的用户身份运行,同时尝试为管理员用户写入临时文件,而管理员用户没有(也不应该)具有写入或读取访问权限。

在这里我们可以看到进程详细信息,表明应用程序用户是登录用户而不是管理员: 在此输入图像描述

有谁知道如何解决这个问题?

即使我在 .net 5 控制台应用程序上运行调试,也会发生该错误。在这种特殊情况下,我不明白为什么它需要在 WebView 实例中运行任何内容,但显然某些后台进程正在运行某些内容。这是可以关闭的东西吗?

elevated-privileges webview2 visual-studio-2022

17
推荐指数
1
解决办法
8724
查看次数

WebView2 EnsureCoreWebView2Async 永远不会返回

在我的 WPF 应用程序中,我需要显示一个 html 字符串,并且我知道我需要在调用 NavigateToString 之前调用 EnsureCoreWebView2Async 方法,否则 CoreWebView 将为 null 并且我会遇到异常。问题是等待 EnsureCoreWebView2Async 永远不会结束。

我创建了一个小应用程序来重现问题(并排除与我的大项目相关的问题),问题是相同的。

  • 如果我设置 WebView2 的 Source 属性并传递 Url,那么它就可以工作!
  • 如果我调用 NavigateToString 而不调用 EnsureCoreWebView2Async,我会收到异常(如预期)。
  • 如果我在调用 NavigateToString 或设置 Source 属性之前调用 EnsureCoreWebView2Async (这应该不是问题,因为根据文档多次调用它不会产生任何效果),那么它会永远挂起。调用不会引发任何异常,控制台中也不会显示任何消息。非常令人沮丧。

以下是示例应用程序的代码(我的主窗口有 2 个按钮,一个用于打开 url,一个用于加载 html 字符串 - 第一个起作用):

<Window x:Class="WebViewApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WebViewApp" xmlns:wpf="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<StackPanel>
    <Button Width="200" Height="40" Click="OpenUrl_Click">Open url</Button>
    <Button Width="200" Height="40" Click="OpenHtml_Click">Open html</Button>
</StackPanel></Window>
Run Code Online (Sandbox Code Playgroud)

MainWindow后面的代码:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private async …
Run Code Online (Sandbox Code Playgroud)

wpf webview2

13
推荐指数
1
解决办法
9727
查看次数

CefSharp 与 WebView2

我正在考虑将项目从 cef (CefSharp) 迁移到 WebView2 WPF。我的初步测试表明 WebView2 API 具有我需要的该端口的接口。我担心我会错过一些可能阻止我切换到 WebView2 的东西,我会在过渡的后期阶段解决这个问题。如果有人经历过这个过程,请分享我是否需要了解可能成为此过渡的障碍的事情。WebView2 中是否缺少来自 cef 的重要 API?

chromium-embedded cefsharp webview2

12
推荐指数
1
解决办法
6391
查看次数

如何在控制台应用程序中使用 WebView2

string text = "return 'test';";
var webView = new Microsoft.Web.WebView2.WinForms.WebView2();
webView.EnsureCoreWebView2Async(null).RunSynchronously();
var srun = webView.CoreWebView2.ExecuteScriptAsync(text);
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码 EnsureCoreWebView2Async 时出现此异常

“设置后无法更改线程模式。(HRESULT 异常:0x80010106 (RPC_E_CHANGED_MODE))”

我需要做什么才能在控制台或 Windows 服务中没有 winform dlg 的情况下运行它?

c# webview2

11
推荐指数
1
解决办法
5779
查看次数

如何在 C# windows 应用程序中使用 Microsoft Edge WebView2 控件

如何使用 Visual Studio 在 C# windows 应用程序中使用 Microsoft Edge WebView2 控件?

c# microsoft-edge webview2

9
推荐指数
2
解决办法
1万
查看次数

Microsoft Edge WebView2 - 加载时示例崩溃

我采用了最新版本的 Microsoft.Web.WebView2(0.9.515-预发行版)并添加到测试 C# WinForms 应用程序中。我使用的是 VS 2019,.NET 框架是 4.7.2。将 WebView2 控件放在表单上,​​编译并运行。应用程序在加载时崩溃,位于 Form1.designer.cs 中的以下位置。

    // webView21
    // 
    this.webView21.Location = new System.Drawing.Point(153, 66);
    this.webView21.Name = "webView21";
    this.webView21.Size = new System.Drawing.Size(492, 253);
    this.webView21.Source = new System.Uri("about:blank", System.UriKind.Absolute);
    this.webView21.TabIndex = 0;
    this.webView21.Text = "webView21";
    this.webView21.ZoomFactor = 1D;
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(800, 450);
    this.Controls.Add(this.webView21); //CRASHED HERE WITH BELOW EXCEPTION -
Run Code Online (Sandbox Code Playgroud)

当我在 Release 模式下运行它时,得到以下异常跟踪 - System.NullReferenceException: Object reference not set to an instance of …

visual-studio-2019 webview2

9
推荐指数
2
解决办法
5854
查看次数

WebView2 (2020/06) -&gt; DOM 在哪里?

我将一种可工作的 Excel VBA 应用程序(该应用程序将 IE 自动化)作为我为我的妻子编写的网络抓取和下订单系统的一部分移动到了 C#/Windows Forms/WebView2,她花了几个小时被 90 年代风格的 Usborne Children Books Consultant Portal 折磨。项目。

目前看来,基础知识还不具备。

例如...

    1- if(browser.navigationComplete == true){

    That simple check isn't available. 
    How is one supposed to flow sequences of user actions without this?

    2- htmlagilitypack like tools?

    In VBA you can easily work with the DOM since there's types for pretty much everything. Where's that in WebView2?
Run Code Online (Sandbox Code Playgroud)

也许我理解错了,但看起来 webview2 只是一个浏览器,没有 VBA 二十多年来所拥有的自动化工具。请告诉我,我不必爬回中世纪的 Excel VBA 地牢。我已经看到了光明,这很好!

任何架构或实际测试的工作代码将不胜感激:)

感谢您从温哥华,

安托万

webview2

9
推荐指数
2
解决办法
8278
查看次数

WebView2 控件未加载 HTML 字符串

WebView2控件:如下所示,HTML 字符串通过事件内的NavigateToString(...)Button_Click(...)调用成功加载。但我需要在加载Window和/或其Grid加载后立即加载 HTML 字符串。MainWindow(){...}但是构造函数内或事件内的以下代码rootGrid_Loadded(...)会引发如下错误:

问题:我们怎样才能解决问题并在加载或HTML string后立即加载?或者有更好的解决方案/解决方法吗?WindowGrid

主窗口.xaml

<Window x:Class="WpfWebView2TEST.MainWindow"
        .....
        xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
        mc:Ignorable="d"
        Style="{StaticResource CustomWindowStyle}"
        Title="MainWindow" Height="450" Width="800">
    
    <Grid>
        <Button x:Name="btnTest" Content=Test" Click="btnTest_Click"/>
        <wv2:WebView2 Name="MyWebView" />
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

注意:在以下构造函数中调用 MyLoadHTMLString() 或rootGrid_Loaded(...)事件会引发如下错误:

MainWindow.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        MyLoadHTMLString();
    }
........
}

private void rootGrid_Loaded(object sender, RoutedEventArgs e)
{
  MyLoadHTMLString();
}


public void MyLoadHTMLString() …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml webview2

9
推荐指数
2
解决办法
2万
查看次数

为什么作为 webView2 对象的 coreWebView2 为空?

我正在创建 Microsoft.Web.WebView2.WinForm.WebView2 的对象,但此 coreWebView2 的子对象为空

Microsoft.Web.WebView2.WinForm.WebView2 webView = new Microsoft.Web.WebView2.WinForm.WebView2()
// Change some GUI properties of webView
webView.CoreWebView.NavigateUrl(url)
// I can not access the above line because CoreWebView is null
Run Code Online (Sandbox Code Playgroud)

c# browser invalid-url null-object-pattern webview2

8
推荐指数
5
解决办法
9686
查看次数

如何阻止 webview2 打开新的浏览器窗口而不是在浏览器内部

我想知道是否有办法阻止 webview2 组件在 win 表单中打开浏览器窗口

怎么了 在此输入图像描述

我到处找,但没找到,但我确实找到了,但它使用了 XAML/UWP

一页使用了 xaml,但代码无法工作,因为它的 XAML 和我使用 c#

c# winforms webview2

8
推荐指数
1
解决办法
5322
查看次数