網站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架構設計羣的大俠們,告訴了排查思路,還在進一步的跟蹤中api

  • 使用ProcDump 工具保存進程異常狀況時的Dump文件,如內存太高,CPU佔用太高的狀況
  • 使用WinDB進行文件分析
  • 使用LSPV日誌分析工具,分析W3W3C的日誌,根據訪問uri進行分組統計,查看哪塊的訪問頻率最高,問題可能就是由它引發的
相關文章
相關標籤/搜索