当前位置: 首页 > news >正文

做网站构建高清设计网站推荐

做网站构建,高清设计网站推荐,哪个公司搭建网站,加强旅游网站建设本文记录在 dotnet 6 的网络和在 .NET Framework 的行为的变更。在 dotnet 6 下#xff0c;默认的网络请求在系统网络代理变更的时候#xff0c;是不会动态切换代理的。例如在应用运行进行网络通讯之后#xff0c;打开 Fiddler 抓包#xff0c;此时将会发现 Fiddler 抓不到… 本文记录在 dotnet 6 的网络和在 .NET Framework 的行为的变更。在 dotnet 6 下默认的网络请求在系统网络代理变更的时候是不会动态切换代理的。例如在应用运行进行网络通讯之后打开 Fiddler 抓包此时将会发现 Fiddler 抓不到包只有在应用重启之后才能抓到。或者是开着 Fiddler 抓包然后退出 Fiddler 之后应用就断网了如此行为是因为 Fiddler 抓包其中的一个原理就是设置系统的本机网络代理而由于 dotnet 6 下应用不会动态切换代理如果在应用启动进行网络通讯之后再打开 Fiddler 抓包在 Fiddler 打开之后将会修改系统的本机网络代理但是 dotnet 6 的应用由于默认不会动态切换代理从而不走 Fiddler 的代理因此 Fiddler 抓不到包。同理在开着 Fiddler 抓包之后退出了 Fiddler 将会修改本机的网络代理但是由于 dotnet 6 的应用默认不会动态切换代理在 Fiddler 修改了本机网络代理之后依然 dotnet 6 的应用还在使用着被关闭的 Fiddler 的网络代理从而断网核心原因是在 dotnet 6 下变更了网络代理动态切换的行为。其实考古找到这个行为在 .NET Core 2.0 就是默认不支持自动跟随系统代理切换而修改代理在 .NET Framework 的 4.0 开始通过监听注册表的 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections 的变更在变更之后进行刷新网络请求的代理。详细请看 https://referencesource.microsoft.com/#System/net/System/Net/_AutoWebProxyScriptEngine.cs,395在 .NET Core 下网络代理的获取只有一次获取到的代理没有再去监听注册表的变更也就没有再次刷新。此问题已反馈给官方详细请看 https://github.com/dotnet/runtime/issues/46910在 .NET Core 将会在首次获取 HttpClient.DefaultProxy 时进行初始化值得一提的是在 .NET Core 调用的 WebRequest.GetSystemWebProxy 方法底层也是调用 HttpClient.DefaultProxy 属性public static IWebProxy GetSystemWebProxy() HttpClient.DefaultProxy;以上的 GetSystemWebProxy 实现请看 Make WebRequest.GetSystemWebProxy() return a working proxy by stephentoub · Pull Request #41692 · dotnet/corefx在 HttpClient.DefaultProxy 里面将会调用到 SystemProxyInfo.cs 的 ConstructSystemProxy 方法获取对应平台的代理。这个 ConstructSystemProxy 在 OSX 和 Unix 和 Windows 有各自的实现在 Windows 实现如下public static IWebProxy ConstructSystemProxy(){if (!HttpEnvironmentProxy.TryCreate(out IWebProxy? proxy)){HttpWindowsProxy.TryCreate(out proxy);}return proxy ?? new HttpNoProxy();}在 HttpEnvironmentProxy 里面将尝试通过环境变量获取代理的配置也就是说 dotnet 6 应用是支持通过环境变量设置代理如此更加方便调试。获取的环境变量分别是 ALL_PROXY 和 HTTP_PROXY 和 HTTPS_PROXY 这几个惯例变量如上面代码如果获取不到环境变量那么就进入 HttpWindowsProxy 的代码。在 WinInetProxyHelper 将会读取系统的代理如上面代码可以看到实际上在 HttpClient.DefaultProxy 里面只会获取一次没有通过注册表的变更再次刷新这就是网络请求不跟随本机网络代理变化的原因一个解决方法就是拷贝 dotnet runtime 的读取系统的配置方法再加上监听注册表变更进行刷新配置从而实现动态跟随系统代理变化而变化。我拷贝了代码写了一个版本使用方法是var dynamicHttpWindowsProxy new DynamicHttpWindowsProxy();HttpClient.DefaultProxy dynamicHttpWindowsProxy;代码的实现放在github 和 gitee 欢迎访问可以通过如下方式获取源代码先创建一个空文件夹接着使用命令行 cd 命令进入此空文件夹在命令行里面输入以下代码即可获取到代码git init git remote add origin https://gitee.com/lindexi/lindexi_gd.git git pull origin 8c64e9676c4205e55fad227a86d5d8d95a5ebe91以上使用的是 gitee 的源如果 gitee 不能访问请替换为 github 的源。请在命令行继续输入以下代码git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git git pull origin 8c64e9676c4205e55fad227a86d5d8d95a5ebe91获取代码之后进入 NilerlanaihikaWhurreeberhalur 文件夹具体实现放在 Proxy 文件里面在 Program.cs 包含了测试逻辑可以不断尝试访问百度。可以测试在使用 HttpClient.DefaultProxy dynamicHttpWindowsProxy; 时切换 Fiddler 代理配置和不使用 DynamicHttpWindowsProxy 切换配置的行为以上代码基本都是从 dotnet runtime 里面抄的可以放心用在正式的项目。监听注册表变更是从 https://www.codeproject.com/Articles/4502/RegistryMonitor-a-NET-wrapper-class-for-RegNotifyC 抄的这是一段比较古老稳定的代码只不过需要多开启一个线程用来监听注册表。这就是为什么在例子代码里面会延迟去启动监听注册表参考文档c# - Default proxy in .net core 2.0 - Stack OverflowAutoWebProxyScriptEngine.csMake WebRequest.GetSystemWebProxy() return a working proxy by stephentoub · Pull Request #41692 · dotnet/corefxWinHttpWebProxyDataBuilder.csruntime/HttpConnectionPoolManager.cs at 1d9e50cb4735df46d3de0cee5791e97295eaf588 · dotnet/runtimeHttpClient.DefaultProxy should respect IE proxy changes · Issue #46910 · dotnet/runtimehow to set default proxy with .NET core 3.1 for HTTP client for any request? - Stack OverflowHow to change Global Windows Proxy using C# .NET with Immediate Effect - Stack Overflow
http://www.yutouwan.com/news/326801/

相关文章:

  • php简易购物网站开发做网站6个月心得
  • 网站建设合同 售后维护期网站建设多少钱一个平台
  • 网站不兼容360浏览器扬州网站建设哪家公司好
  • 阿里云虚拟主机搭建wordpressseo的优点和缺点
  • 网站开发人员属于什么软件wordpress自动识别网页
  • 青海宾馆网站建设公司家装设计方案ppt案例
  • 电脑网站加速器简单网页设计模板html
  • 网站移动排名wordpress edd 会员
  • 购物网站如何做推广淘宝网站建设教程视频教程
  • 如何优化网站代码珠海网站设计培训
  • 东莞网站推广模板企业网站设计公司
  • 南通网站建设论坛企业网站的建设与流程
  • 太原市城市建设规划局官方网站wordpress我的世界主题
  • 免费网站模版 好用的最新国际新闻摘抄
  • 哪里可以做游戏视频网站湛江网站建设公司哪家好
  • 没有网站做分类信息群发网页设计个人主页模板图片
  • 顺德网站建设公司有哪些武乡网站建设
  • 安徽网站建设公司排名东莞高端网站建设首页排名
  • 北京建设网站哪里好元宇宙app技术开发
  • 营销型网站的三元素网站开发服务器配置
  • 网站布局策划案鲜花购物网站源码
  • 网上建设网站淮北矿业工程建设有限公司网站
  • 模板网站什么意思国外网站翻墙怎么做
  • 大型自适应的网站开发wordpress自带的代码高亮
  • 专业建设网站服务公司网站开发项目风险
  • 手机网站建设是什么规划网站站点需要遵循哪些原则
  • 易语言如何建设网站网站下载不了怎么解决
  • 无锡网站建设 网站制作开发公司安全生产管理制度
  • 专门做图片是网站网站购买后如何做
  • 企业网站文案外包wordpress 空白主题