我们正在使用 Microsoft Application Insights 来记录遥测数据。突然间,它已停止为大多数用户记录数据。我们从 WPF 应用程序进行日志记录。我们怀疑打开 ServicePointManager.ServerCertificateValidationCallback 导致了这个问题。这是回调的代码 -
public static bool CertificateValidationCallBack(
object sender,
X509Certificate certificate,
X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
bool isCertificateValid = true;
try
{
var certificate2 = new X509Certificate2(certificate);
isCertificateValid = certificate2.Verify();
}
catch
{
}
return isCertificateValid;
}
根据配置值,我们附加回调,否则我们将其设置为 null。这是我们如何获得ServicePointManager.ServerCertificateValidationCallback值 -
if (!AllowFiddler)
{
ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
}
else
{
ServicePointManager.ServerCertificateValidationCallback = null;
}
每次我们使用 HttpClient 发出异步请求时,都会执行上述代码块。
代码有什么问题吗?Application Insights SDK 是否保留任何可用于调查数据丢失的日志?我查看了 %localappdata%/Microsoft/ApplicationInsights 文件夹 - 它只包含空文件夹。关于如何解决此问题的任何想法?