(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) {
;
https://www.cnblogs.com/yifengjianbai/p/6128396.html
.NET的SSL通信过程中,使用的证书可能存在各种问题,某种情况下可以忽略证书的错误继续访问。可以用下面的方式跳过服务器证书验证,完成正常通信。
1.设置回调属性ServicePointManager.ServerCertificateValidationCallback
注:这个
属性设置为要用于客户端的服务器证书的自定义验证方法
True:认证成功; False:认证失败。
1 ServicePointManager.ServerCertificateValidationCallback =
2 new RemoteCertificateValidationCallback(
3 OnRemoteCertificateValidationCallback);
VB.NET代码
1 ServicePointManager.ServerCertificateValidationCallback = _
2 New RemoteCertificateValidationCallback( _
3 AddressOf OnRemoteCertificateValidationCallback)
2.把证书认证函数OnRemoteCertificateValidationCallback返回值True
1 // 忽略证书认证错误处理的函数
2 private bool OnRemoteCertificateValidationCallback(
3 Object sender,
4 X509Certificate certificate,
5 X509Chain chain,
6 SslPolicyErrors sslPolicyErrors)
8 return true; // 认证正常,没有错误
' 忽略证书认证错误处理的函数
Private Function OnRemoteCertificateValidationCallback( _
ByVal sender As Object, _
ByVal certificate As X509Certificate, _
ByVal chain As X509Chain, _
ByVal sslPolicyErrors As SslPolicyErrors _
) As Boolean
Return True ' 认证正常,没有错误
End Function
https://www.cnblogs.com/duanh/p/5781839.html
转载于:https://www.cnblogs.com/chuancheng/p/10001687.html
using log4net;using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Mail;using System.Net.Security;using System.Security.Cryptography.X509Ce...
System.Net.ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate)
Public Function ValidateServ...
A(对方公司)提供接口服务,地址时http前缀的,加上用户名和密码等数据后测试时没有问题,可以直接调通,但在切换到生产后,地址变更为https前缀,然后这个接口就调不到。
产生问题分析:
https前缀会有ssl证书验证,在post调取该地址时,可以忽略掉该验证,否则会产生调不到的情况。
解决办法:
代码调用时需在调用地址前加忽略掉ssl验证这段代码,如下:
ServicePointManager.ServerCertificateValidationCallback = (sender,
在C#中,HRESULT:0x80131040异常通常是由于程序集的版本不兼容所致。这可能是由于程序集的版本与当前运行时版本不兼容,或者由于程序集引用了其他程序集,而这些程序集的版本与当前运行时版本不兼容。为了解决这个问题,可以尝试以下几种方法:
1.检查程序集的版本是否与当前运行时版本兼容。可以通过在Visual Studio中打开项目属性并检查目标框架版本来检查当前运行时版本。
2.检查程序集引用的其他程序集的版本是否与当前运行时版本兼容。可以通过在Visual Studio中打开项目引用并检查每个引用的版本来检查。
3.如果程序集是从其他计算机上编译的,则可能需要重新编译程序集以使用当前运行时版本。
4.如果以上方法都无法解决问题,则可以尝试使用程序集绑定日志记录来确定问题的根本原因。可以通过在应用程序配置文件中启用程序集绑定日志记录来完成此操作。
```csharp
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<logToConsole enabled="true"/>
</assemblyBinding>
</runtime>
</configuration>