D365FO采用https,第三方通过API调用的时候,客户端不见得信任D365FO的证书,调用时候会报
基础连接已关闭,发送时发生错误,调用堆栈如下:

 1    at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)2    at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)3    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)4    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)5    at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)6    at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)7    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)8    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)9    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
10    at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
11    at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
12    at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
13    at System.Net.ConnectStream.WriteHeaders(Boolean async)

从调用堆栈看,应该是跟SSL验证有关系。
当然有时候还会直接报
基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系
这个就更直接了。
网上有很多解决办法,目的是让https请求跳过客户端对SSL证书的验证。

1 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
2             ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
3                 (object caller,
4                 X509Certificate certifacate,
5                 X509Chain chain,
6                 SslPolicyErrors erros) => { return true; });
7             var request = HttpWebRequest.Create(url);

这段代码一定要放到HttpWebRequest之前,要不然回调的时候调不到方法。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
这一句也是必须的,D365的协议版本是Tls12,指定别的版本也不会跳过检查。

【转】D365 FO第三方访问https证书问题相关推荐

  1. 【转】D365 FO第三方集成(四)---客户端调用

    客户端调用json-based服务非常简单,就是标准的http调用. http调用首先要解决URL的组成,D365 FO json-based调用的url组成如下: https://usnconebo ...

  2. curl证书过期_centos7内核升级及curl访问https证书过期处理

    centos7内核升级及curl访问https证书过期处理 先看下当前系统的linux内核版本 uname -r 3.10.0-229.el7.x86_64 升级步骤 1.rpm --import h ...

  3. 【转】D365 FO第三方集成(三)---服务实现

    D365 FO的Custom Service的实现比AX2012简单了很多. AX2012服务方法要用属性SysEntryPointAttribute标记,添加到Services以后,还要发布服务并在 ...

  4. https访问报证书错误_访问https 证书错误

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证

    1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...

  6. curl 忽略证书访问 https

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具.然而在使用cr ...

  7. harbor镜像仓库-https访问的证书配置 (docker配置harbor https证书)

    harbor镜像仓库-https访问的证书配置 生成CA证书 随便搞个什么文件夹,用于存放生成的证书 创建key文件: root@eb7023:/data/certs>openssl genrs ...

  8. IIS 使用OpenSSL 生成的自签名证书,然后使用SingalR 客户端访问Https 站点通信

    使用SignalR 的客户端去发送消息给使用 https 部署的站点,官方文档目前并没有详细的教程,所以在此记录下步骤: 使用管理员身份打开cmd 窗口,选择一个整数保存文件夹的地址,切换到对应的文件 ...

  9. CloseableHttpClient加载证书来访问https网站

    2019独角兽企业重金招聘Python工程师标准>>> CloseableHttpClient加载证书来访问https网站 对安全性有要求的网站一般使用https来加密传输的请求和响 ...

最新文章

  1. 到了管理层我才发现,这些管理知识应该尽早学起来!
  2. Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程
  3. C++ 向函数传数组的方法
  4. C++迭代器的使用和操作总结
  5. nginx: [warn] the “ssl“ directive is deprecated, use the “listen ... ssl“ directive instead in
  6. python的基础知识可以应用到哪方面-Python基础知识
  7. 修改现有用户帐户的 Microsoft Lync Server 2010 属性
  8. Windows系统安装Redis(详细)
  9. 微软安全软件_微软在GitHub上发布了一个供内部使用的Linux发行版
  10. 模拟CMOS 集成电路设计
  11. 微软windows10易升_微软官网下载与安装windows10系统的操作步骤
  12. 广播前置放大器的作用_IP网络广播前置放大器
  13. win10 动态磁盘 linux,windows10系统下基本磁盘变成动态磁盘了如何解决
  14. python使用二分搜索求log以2为底10的近似值
  15. rep的软件用什么打开_rep文件用什么软件打开
  16. java毕业设计基于ssm框架的生鲜超市进销存管理系统
  17. 一场“测谎”人机对战背后的故事:度小满的技术进击之路
  18. 【交换篇】(6.4) ❀ 01. HA 状态下的核心交换机连接方法 (上) ❀ FortiSwitch 交换机
  19. 图像处理——振铃现象
  20. 零基础学习深度学习_深度学习的基础!!!

热门文章

  1. Flume与Kafka整合案例详解
  2. Leetcode 206. Reverse Linked List
  3. mysql-用正则表达式进行搜索
  4. 洛谷 P1852 奇怪的字符串
  5. Android之View绘制流程开胃菜---setContentView(...)详细分析
  6. Android Service 的一些笔记
  7. ATL WTL 实现分析(五)
  8. DP问题之 捞鱼问题
  9. 引路蜂地图API:Gis.Navigation包定义
  10. 美国团购网站Groupon的盈利模式