【问题标题】:Opening WebView2 in WPF causes System.UnauthorizedAccessException while calling EnsureCoreWebView2Async在 WPF 中打开 WebView2 会在调用 EnsureCoreWebView2Async 时导致 System.UnauthorizedAccessException
【发布时间】:2021-02-25 18:08:15
【问题描述】:

从 COM Office 插件打开带有 WebView2 组件的 WPF 窗口时,在调用 EnsureCoreWebView2Async(null) 期间会出现以下错误。 Office 应用程序窗口被设置为新 WPF 窗口的所有者。

System.UnauthorizedAccessException: '访问被拒绝(异常 HRESULT: 0x80070005(E_ACCESSDENIED))'

有趣的是,当从纯 WPF 应用程序调用同一个窗口时,窗口和 webview2 可以完美运行。如果没有 WebView2 组件,窗口也可以工作。

【问题讨论】:

  • 这只是一个猜测... WebView2 可能无法在C:\Program Files\Microosft Office\... 下创建它的缓存文件夹。也许尝试一下:stackoverflow.com/questions/62470733/…
  • 感谢@rfmodulator,我同时找到了CoreWebView2CreationProperties设置,解决了它

标签: c# wpf webview2


【解决方案1】:

这个问题显然与 webview 试图在错误的位置创建文件(例如缓存)有关,很可能是应用程序文件夹。在 CoreWebView2CreationProperties 中,可以调整此行为并指定不同的文件夹。

在 WPF XAML 中的使用示例:

 <wv2:WebView2>
     <wv2:WebView2.CreationProperties>
         <wv2:CoreWebView2CreationProperties UserDataFolder="C:\Temp\myfolder"/>
     </wv2:WebView2.CreationProperties>
 </wv2:WebView2>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多