You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 使用 WebView2 时如何忽略系统默认代理实现网络直连

WebView2强制忽略代理直接连接网络解决方案

问题根因

你当前的代码不生效有两个核心原因:

  1. 配置时机错误:CoreWebView2InitializationCompleted 事件触发时,WebView2的核心运行环境已经完成初始化,此时再调用EnsureCoreWebView2Async 无法覆盖已生效的默认配置,代理参数不会被应用。
  2. 参数格式错误:你给--proxy-server的参数值加了多余的双引号,会导致WebView2解析参数失败,配置无法生效。

正确实现步骤

  • 禁用WebView2自动初始化:不要在设计器(XAML/WinForm设计界面)中提前设置WebView2的Source属性,避免控件自动用默认配置初始化环境。
  • 调整初始化时机:在窗体/页面的初始化阶段(如构造函数)就完成自定义环境配置,再触发WebView2的初始化。

完整可运行代码示例

// 以WPF为例,WinForm逻辑完全一致
public MainWindow()
{
    InitializeComponent();
    // 启动自定义WebView2初始化流程
    _ = InitWebView2WithoutProxy();
}

private async Task InitWebView2WithoutProxy()
{
    CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions();
    // 两种参数二选一,均可强制完全跳过代理直连网络
    // 方案1:指定代理为直连模式
    options.AdditionalBrowserArguments = "--proxy-server=direct://";
    // 方案2:直接禁用代理服务,优先级更高
    // options.AdditionalBrowserArguments = "--no-proxy-server";
    
    // 创建自定义环境
    CoreWebView2Environment customEnv = await CoreWebView2Environment.CreateAsync(null, null, options);
    // 应用自定义环境完成WebView2初始化
    await webView2Control.EnsureCoreWebView2Async(customEnv);
    
    // 初始化完成后再执行导航操作
    webView2Control.CoreWebView2.Navigate("你需要访问的目标地址");
}

验证注意事项

  • 若测试时仍走代理,先检查是否有其他位置修改了AdditionalBrowserArguments参数,覆盖了代理配置
  • 清理WebView2缓存目录(默认路径为C:\Users\用户名\AppData\Local\你的程序名\WebView2)后再重新测试,避免旧配置缓存影响

内容的提问来源于stack exchange,提问作者IShirai_KurokoI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:27:00