热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

错误12175调用WINHTTP_CALLBACK_STATUS_REQUEST_ERROR发生安全错误

如何解决《错误12175调用WINHTTP_CALLBACK_STATUS_REQUEST_ERROR发生安全错误》经验,应该怎么弄,您有好建议吗?

我已经在asp.net core 2.1中创建了网站。在此网站中,我们使用httpclient调用第三方HTTPS webapi。当我在Smarterasp.net共享托管服务器上部署时,我的网站工作正常,但是当我在Windows 2016服务器上使用代理设置部署时,出现以下错误。这仅发生在HTTPS APi中。对于非https api,它在Windows Server 2016上可以正常工作。

登录失败异常System.Net.Http.HttpRequestException:发送请求时发生错误。---> System.Net.Http.WinHttpException:调用WINHTTP_CALLBACK_STATUS_REQUEST_ERROR的错误12175,“发生安全错误”。在System.Threading.Tasks.RendezvousAwaitable 1.GetResult() at System.Net.Http.WinHttpHandler.StartRequest(WinHttpRequestState state) --- End of inner exception stack trace --- at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task1 sendTask,HttpRequestMessage请求,CancellationTokenSource cts,布尔值disposeCts)

我进行了一些研究,并在此基础上设置了以下代码,但仍然遇到错误。适用于非HTTPS api。

 AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
        var handler = new HttpClientHandler();
         if (ProxySettings.Current.UseProxy)
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            handler.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls;
            handler.ServerCertificateCustomValidatiOnCallback= (message, cert, chain, errors) =>
            {
                return true;
            };

            var proxy = new WebProxy();
            if (!string.IsNullOrWhiteSpace(ProxySettings.Current.ProxyHost) && ProxySettings.Current.ProxyPort != 0)
            {
                proxy = new WebProxy(ProxySettings.Current.ProxyHost, ProxySettings.Current.ProxyPort);
            }
            proxy.UseDefaultCredentials = ProxySettings.Current.UseDefaultCredentials;
            if (!string.IsNullOrWhiteSpace(ProxySettings.Current.ProxyUrl))
                proxy.Address = new Uri(ProxySettings.Current.ProxyUrl);

            if (ProxySettings.Current.HasNetworkCredentials)
            {
                var credentials = new NetworkCredential();
                credentials.UserName = ProxySettings.Current.NetworkUserName;
                credentials.Password = ProxySettings.Current.NetworkPassword;
                if (!string.IsNullOrWhiteSpace(ProxySettings.Current.NetworkDomain)) credentials.Domain = ProxySettings.Current.NetworkDomain;

                proxy.Credentials = credentials;
            }

            handler = new HttpClientHandler
            {
                UseProxy = true,
                Proxy = proxy,
            };
        }

您能帮忙获得解决方案吗?


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • 解决浏览器打开网页后提示“dns_probe_possible 怎么解决”的方法
    在使用浏览器进行网上冲浪的时候遇到故障是一件很常见的事情,很多用户都遇到过系统提示:dns_probe_possible。从提示中可以看出和DNS是有一定的关系的,经过小编测试之后 ... [详细]
  • 问题描述:域名已经备案,我全部都有,也在后台配置了,但是手机预览,还是请求失败,PC端是可以请求 ... [详细]
  • 初学反射基本原理
    反射:框架设计的灵魂*框架:半成品软件。可以在框架的基础上进行软件开发,简化编码*反射:将类的各个组成部分封装为其他对象 ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
author-avatar
mobiledu2502908793
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有