网站CPU占满,微信经常SSL不能建立的错误排查

Posted fengshi1988

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站CPU占满,微信经常SSL不能建立的错误排查相关的知识,希望对你有一定的参考价值。

微信SSL经常建立失败的问题排查

问题描述 及应急方案

  • 问题描述: 使用微信访问时,一段时间过后总会提示SSL连接无法建立【程序中需要获取用OpenId,因此有调用企业微信Api的请求】
  • 应急方案:在Global.asax 文件中加入如下代码让服务器不验证证书,但是感觉用途不大,再重启了应用程序池后表现正常,但是一段时间后又出现ssl建立失败的情况。
protected void Application_Start()
{
 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback += MyRemoteCertificateValidationCallback;
}

 public static bool MyRemoteCertificateValidationCallback(
            Object sender,
            X509Certificate certificate,
            X509Chain chain,
            SslPolicyErrors sslPolicyErrors)
{
            return true;
          
}

问题排查

  • 一度怀疑是第三方组件Spnparc插件版滞后导致的,后续升级插件后仍旧无法正常使用
  • 怀疑是SSL的证书无法验证导致的错误,将能正常访问api的服务器的证书导入到目标服务器,问题依旧存在。
  • 偶然情况下,才发现在单点登录这里有个坑,代码如下,我了个去每次单点登录就会把服务器端验证覆盖为一直返回false。
private void GetSSOLoginInfo(string cashost, string ticket, string service, ref string netid)
{
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;
}

 private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
 {
            return false;
}
  • 总结,从别处Copy的代码一定要理解清楚,不清楚的方法一定要百度下问什么要这样写。不然出了错,排查问题都无法下手。

CPU 占满

问题描述及应急方案

  • 问题描述:服务器8核32G内存,虚拟机 应该够强了,网站用户很少,但是每隔3天或者4天服务器内存始终会占满
  • 应急方案: 设置高频的IIS应用程序池回收方案,在网站进程CPU占用超过40%时自动重启网站。

问题排查

感谢Abp架构设计群的大侠们,告诉了排查思路,还在进一步的跟踪中

  • 使用ProcDump 工具保存进程异常情况时的Dump文件,如内存过高,CPU占用过高的情况
  • 使用WinDB进行文件分析
  • 使用LSPV日志分析工具,分析W3W3C的日志,根据访问uri进行分组统计,查看哪块的访问频率最高,问题可能就是由它引起的

以上是关于网站CPU占满,微信经常SSL不能建立的错误排查的主要内容,如果未能解决你的问题,请参考以下文章

sql server ssl安全错误

解决一次由于SSL证书到期导致的网站不能访问的问题(Nginx,php,Apache)

为啥ssl总是显示发生SSL错误?

i511代cpu装不起win11

SSL证书没有绿锁您与此网站建立的连接并非完全安全解决办法

发生ssl错误 无法建立到该服务器的安全连接