网站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架构设计群的大侠们,告诉了排查思路,还在进一步的跟踪中c#

  • 使用ProcDump 工具保存进程异常状况时的Dump文件,如内存太高,CPU占用太高的状况
  • 使用WinDB进行文件分析
  • 使用LSPV日志分析工具,分析W3W3C的日志,根据访问uri进行分组统计,查看哪块的访问频率最高,问题可能就是由它引发的
相关文章
相关标签/搜索