UWP WebView2 ERR_NETWORK_ACESS_DENIED 加载 IP 地址时(您的互联网访问被阻止)
UWP WebView2 ERR_NETWORK_ACESS_DENIED when loading an IP address (your internet access is blocked)
在为 UWP 安装 WebView2 组件并使用 these instructions 创建项目后,web 视图无法加载本地 IP Source="http://10.20.30.59/"
。
- 相同的 URL 在 WPF WebView 中工作,但是由于其他问题我需要迁移。
- 相同的 URL 在其他浏览器中有效,只是在 WebView2 中无效。 “正常”URL 类似 https://bing.com 在 WebView2 中工作正常。
- 关闭防火墙仍然不允许加载内容。
- 在病毒和威胁防护设置下关闭 Windows 防病毒软件没有帮助。
CoreWebView2NavigationCompletedEventArgs.IsSuccess
值为 false
,WebErrorStatus
为 ConnectionAborted
。
- 在 DevTools > Network > Headers 下,失败页面的值为 Referrer Policy:strict-origin-when-cross-origin。访问 https://developer.chrome.com/blog/referrer-policy-new-chrome-default/ 表明可以使用 Chrome 标志进行修改,但我不知道如何 运行 那些标志来验证这不是问题。
- 反馈区有一些类似https://github.com/MicrosoftEdge/WebView2Feedback/issues/2145的问题,但没有一个显示如何调试它。
- 在Package.appxmanifest中添加Internet(客户端&服务器)、Internet(客户端)、专用网络(客户端和服务器)和远程系统功能没有帮助。
- 使用 Node JS + Node Package Manager 运行 本地服务器可以在
Source="http://10.20.30.106:8080/"
上运行。这使我相信问题出在来源本身。 https://devpractical.com/host-a-html-page-on-localhost/#nodejs-section
- 来自 https://github.com/MicrosoftEdge/WebView2Samples 的 UWP 示例 WebView2Samples-master\SampleApps\webview2_sample_uwp 使用有问题的地址工作正常。为什么?
以下是说明中的最小可重现示例:
<Page
x:Class="WebView2_Test.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:WebView2_Test"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:control="using:Microsoft.UI.Xaml.Controls"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<control:WebView2 x:Name="wv2"
Source="http://10.20.30.59/"/>
</Grid>
这涉及到首先安装 Edge Canary as recommended;在 Visual Studio 中安装 .NET 桌面、C++ 桌面和 UWP 开发工具;并安装 Microsoft.Web.WebView2 和 Microsoft.UI.Xaml prerelease NuGet 包。
如何调试阻止源加载的原因?
通过与 Microsoft 示例进行比较,我发现了 Package.appxmanifest 中缺失的功能,称为 私有网络(客户端和服务器)。这是我项目的唯一要求。
无论出于何种原因,当返回项目时,此功能未被选中,因此可能重新启动 Visual Studio 或以其他方式确保此功能确实已注册。
在为 UWP 安装 WebView2 组件并使用 these instructions 创建项目后,web 视图无法加载本地 IP Source="http://10.20.30.59/"
。
- 相同的 URL 在 WPF WebView 中工作,但是由于其他问题我需要迁移。
- 相同的 URL 在其他浏览器中有效,只是在 WebView2 中无效。 “正常”URL 类似 https://bing.com 在 WebView2 中工作正常。
- 关闭防火墙仍然不允许加载内容。
- 在病毒和威胁防护设置下关闭 Windows 防病毒软件没有帮助。
CoreWebView2NavigationCompletedEventArgs.IsSuccess
值为false
,WebErrorStatus
为ConnectionAborted
。- 在 DevTools > Network > Headers 下,失败页面的值为 Referrer Policy:strict-origin-when-cross-origin。访问 https://developer.chrome.com/blog/referrer-policy-new-chrome-default/ 表明可以使用 Chrome 标志进行修改,但我不知道如何 运行 那些标志来验证这不是问题。
- 反馈区有一些类似https://github.com/MicrosoftEdge/WebView2Feedback/issues/2145的问题,但没有一个显示如何调试它。
- 在Package.appxmanifest中添加Internet(客户端&服务器)、Internet(客户端)、专用网络(客户端和服务器)和远程系统功能没有帮助。
- 使用 Node JS + Node Package Manager 运行 本地服务器可以在
Source="http://10.20.30.106:8080/"
上运行。这使我相信问题出在来源本身。 https://devpractical.com/host-a-html-page-on-localhost/#nodejs-section - 来自 https://github.com/MicrosoftEdge/WebView2Samples 的 UWP 示例 WebView2Samples-master\SampleApps\webview2_sample_uwp 使用有问题的地址工作正常。为什么?
以下是说明中的最小可重现示例:
<Page
x:Class="WebView2_Test.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:WebView2_Test"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:control="using:Microsoft.UI.Xaml.Controls"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<control:WebView2 x:Name="wv2"
Source="http://10.20.30.59/"/>
</Grid>
这涉及到首先安装 Edge Canary as recommended;在 Visual Studio 中安装 .NET 桌面、C++ 桌面和 UWP 开发工具;并安装 Microsoft.Web.WebView2 和 Microsoft.UI.Xaml prerelease NuGet 包。
如何调试阻止源加载的原因?
通过与 Microsoft 示例进行比较,我发现了 Package.appxmanifest 中缺失的功能,称为 私有网络(客户端和服务器)。这是我项目的唯一要求。
无论出于何种原因,当返回项目时,此功能未被选中,因此可能重新启动 Visual Studio 或以其他方式确保此功能确实已注册。