Windows 上的 .NET Core 3.0 忽略 NO_PROXY

2024-01-09

我们正在尝试让代理功能在 Windows 上的 .NET Core 3.0(或 3.1)应用程序中工作。我们发现 HTTPS_PROXY 和 HTTP_PROXY 变​​量按预期进行识别和处理,但默认代理似乎不支持 NO_PROXY 变​​量。这是示例代码:

 HttpClient client = new HttpClient();
 IWebProxy myProxy = HttpClient.DefaultProxy;
 Uri target = new Uri(args[0]);
 Uri proxy = myProxy.GetProxy(target);
 Console.WriteLine($"Target proxy for {target} is {proxy} {myProxy.IsBypassed(target)}");

如果我从 PowerShell 运行此命令:

if (-not $env:path.Contains('c:\data\src')) {
    $env:path = "$env:Path;C:\data\src\Local\DefaultProxy\bin\Debug\netcoreapp3.0"
}
$env:HTTPS_PROXY = 'http://10.11.10.10'
$env:NO_PROXY = '*'
DefaultProxy https://www.contoso.com

I get:

目标代理https://www.contoso.com/ https://www.contoso.com/ is http://10.11.10.10/ http://10.11.10.10/ False

我希望变得空白和真实。

我应该更改什么才能使用 NO_PROXY 从默认代理中排除域?


我提取了 System.Net.Http.HttpEnvironmentProxy 的代码在 .NET Core 3.1 中 https://github.com/dotnet/corefx/blob/v3.1.0/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpEnvironmentProxy.cs (and 在最新的主要开发分支中 https://github.com/dotnet/runtime/blob/main/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpEnvironmentProxy.cs)并通读它,主要是通过 IsMatchInBypassList 方法。不支持星号(*)在 NO_PROXY 中,因此这根本不起作用。此外,对 GetProxy 的调用完全忽略 NO_PROXY 值。

要实现“通配符”行为,NO_PROXY 列表中的域需要以点为前缀 (.),这是标准的,但没有特别详细的记录。我可以使用这些信息来改变我对文档的解释并获得更好的结果。

因此,如果我将 PowerShell 代码修改如下:

$env:HTTPS_PROXY = 'http://10.11.10.10'
$env:NO_PROXY = '.contoso.com'
DefaultProxy https://www.contoso.com

然后我得到:

目标代理https://www.contoso.com/ https://www.contoso.com/ is http://10.11.10.10/ http://10.11.10.10/ True

据推测,DefaultProxy 逻辑将使用 IsBypassed 结果 true 来停止 NO_PROXY 列表上的代理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上的 .NET Core 3.0 忽略 NO_PROXY 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 确定程序集的加载上下文

    给定一个加载的Assembly有没有办法 在代码中 确定它被加载到 3 个加载上下文中的哪一个 默认Load 加载自 or Neither In 苏珊 库克的 选择一个有约束力的上下文 https web archive org web 2
  • 文件格式:使用 awk NR 变量造成混乱

    我是 awk 编程新手 对 NR 变量的使用有点困惑 我的代码是 awk BEGIN k NR printf s s s s n k k 1 k 2 k 3 auth data 猫 auth data 6262 6530 6661 3162
  • 访问条件格式以获取单个记录的连续形式

    我有一个连续的表格 列出了采样时间以及这些样本中不同化学物质的含量 我想格式化单元格以显示化学水平何时超出范围 我的问题是 它们在每个采样时间都会发生变化 3 对于 10 小时的样本来说太高了 但对于 30 小时来说还不错 下面是我的连续形
  • Excel:从整数部分时间转换为分钟时间

    我有一些列 其中日期值采用整数格式 即 14 06736111 1 37 我想把格式变成几分钟 我尝试使用自定义格式的 m 格式 这适用于许多单元格 但其中一些会抛出疯狂的数字 例如 对于时间为 1 37 的单元格 我得到的是 20257
  • 编写一个以 root 身份运行的 perl cgi 应用程序

    我正在编写一个 Perl CGI 应用程序 在某些时候 此 cgi 应用程序需要以 root 身份运行才能访问和写入特定文件 我想知道我到底应该如何执行此操作以及执行此操作时应采取的安全预防措施 你几乎不应该 如果您无法避免它 请创建一小段
  • Python 字符串到 unicode [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 python 中将 ASCII 字符串视为 unicode 并对其中的转义字符进行转义 https stackoverflow com questions 267436 how do i tr
  • 如何使用 Python 将专辑封面嵌入到 MP3 中?

    我一直在使用 mutagen 来读取和写入 MP3 标签 但我希望能够将专辑封面直接嵌入到文件中 以下是如何使用 mutagen 将 example png 作为专辑封面添加到 example mp3 中 from mutagen mp3
  • C++ pow 函数 - 结果无效?

    为什么 dResult 的输出无效 环境 Visual Studio 2008 int tmain int argc TCHAR argv double dN 0 091023604111478473 double dD 0 1277777
  • jQuery - 禁用基于另一个字段选定值的输入字段

    我正在寻找一个可以执行此操作的 jQuery 插件 例如
  • thymeleaf - 将 th:each 与 th:href 结合起来

    我是 Thymeleaf 和 webdev 的新手 我正在尝试将 Thymeleaf 迭代 th each 与 URL 重写 th href 结合起来 a hello a 这会产生以下结果 其中lid 45 a href list l li
  • 在练习 TDD 的同时学习 OpenGL(单元测试)

    我已经开始了一个新的游戏项目 并决定为其学习和使用OpenGL 项目正在Windows和Linux上同时开发 同时 我也对测试驱动开发非常感兴趣 并且正在尽最大努力在任何实际代码之前编写单元测试来引导设计 然而 我认为我缺乏知识可能会绊倒我
  • 模拟两个方块碰撞以计算 PI 时的动画故障

    我在用pygame创建两个方块碰撞的模拟质量比为 100 次方 明确地说 这意味着较大块与较小块的比率可以是100 0 100 1 100 2等等 我在必要时添加了注释和文档字符串 以使逻辑易于理解 import pygame from c
  • 使用ServiceStack的Swagger Plugin,如何实现带有预设值列表的字符串字段

    我正在使用 ServiceStack 的新 Swagger 插件实现 Swagger API 文档 并尝试确定如何使用 容器 数据类型 我需要显示一个字符串字段 其中包含预定值列表和其他作为子对象列表的参数 除非我遗漏了一些东西 否则我相信
  • 在 Ubuntu 11.04 Natty 上进行 Android 调试

    我放置了一个名为 70 android rules 的文件 在 etc udev rules d with 子系统 USB SYSFS 22b8 22b8 模式 0666 但它仍然无法读取我的摩托罗拉 Atrix 是我做错了什么吗 我找到的
  • 将 QByteArray 附加到 QDataStream?

    我必须填充一个QByteArray具有不同的数据 所以我正在使用QDataStream QByteArray buffer QDataStream stream buffer QIODevice WriteOnly qint8 dataHe
  • 非聚集索引在 SQL Server 中的工作原理

    我有一个与数据库理论相关的问题 假设我们有一个包含 3 列的表 PersonID PersonName PersonAge 我们知道 当我们有一个一列的非聚集索引时 SQL Server会按照指定的列对表数据进行排序 并从中构建B 树 当我
  • 在 Python 中使用 readlines 是坏代码吗?

    我因使用 file readlines 的答案而被否决 批评者说使用 readlines 是垃圾代码 以及其他非常粗鲁的语句 有那么糟糕吗 我认为问题在于readlines 将整个文件加载到内存中 理论上 内存可能很大 就内存使用而言 惰性
  • 如何在谷歌浏览器扩展中创建套接字?

    我为谷歌浏览器创建了一个小 hello world 扩展http code google com chrome extensions getstarted html http code google com chrome extension
  • Twitter 的 OAuth 系统如何工作?

    我有一个演示脚本 可以让我使用我的应用程序进行授权并发回我的令牌 但这很令人困惑 我一直在 CURL 或 simpleXML 函数中使用用户名和密码来授权 API 调用 我不明白这与 oauth 有什么关系 我知道我将存储令牌 但是一旦我拥
  • Windows 上的 .NET Core 3.0 忽略 NO_PROXY

    我们正在尝试让代理功能在 Windows 上的 NET Core 3 0 或 3 1 应用程序中工作 我们发现 HTTPS PROXY 和 HTTP PROXY 变 量按预期进行识别和处理 但默认代理似乎不支持 NO PROXY 变 量 这