У меня есть проблема, когда я использую store.Certificates.Find. Я использую Windows Server 2008 R2 с NET 3.5. Сертификат устанавливается поX509Store Certificates.Find FindByThumbprint
public static void AddCertificate(X509Certificate2 cert, StoreName name = StoreName.My, StoreLocation location = StoreLocation.LocalMachine)
{
var store = new X509Store(name, location);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
}
После этого найти сертификат на
string certThumbprint = "XXXX";
var certificates = store.Certificates.Find(X509FindType.FindByThumbprint, commandLineArgs.CertificateThumbprint, true);
if (certificates.Count == 0)
{
throw new ArgumentException("No certificate found with given thumbprint.");
}
исключения не должны быть брошены на всех, но это, кажется, брошена иногда. Он выдает исключения примерно 5 раз на 100 прогонов.
У меня есть googled и найден проблема «невидимого первого символа», но в моем случае отпечаток действительно жестко закодирован. Я нигде не читаю отпечаток. Точные коды, запущенные на сервере Windows 2012 с NET.4.5, никогда не задавали мне никаких проблем. Это относится только к серверу Windows с NET.3.5. Мне интересно, почему результаты настолько непоследовательны только на WS2008R2?