Ошибки при загрузке сертификата X509
За последнюю неделю я обнаружил следующие два случайных исключения на наших веб-серверах:
System.Security.Cryptography.CryptographicException: Insufficient system resources exist to complete the requested service.
System.Security.Cryptography.CryptographicException: The RPC server is too busy to complete this operation.
Исключение возникает только при небольшом проценте попыток и генерируется в этой строке кода:
Return New X509Certificate2(AppSettings("EESSLFile"), AppSettings("EESSLPassword"))
Первый AppSetting - это сетевой путь к файлу сертификата.p12, а второй - пароль, который его открывает.
Я не могу за свою жизнь понять, что является причиной проблемы. Похоже, у Google нет результатов для "CryptographicException" в сочетании с "Недостаточно системных ресурсов" или "Сервер RPC слишком занят".
У нас есть три веб-сервера в одинаково распределенной веб-ферме. Я задавался вопросом, является ли это случаем использования файла, но, похоже, это происходит с разных веб-серверов в пакетном режиме, и я ожидал бы, что ошибка будет распространяться на них всех одновременно, если бы это было так.
Мне интересно, если криптографическая часть - просто красная сельдь к другой основной проблеме, но я действительно застрял в идеях, поэтому, если кто-то знает, что происходит, пожалуйста, дайте мне знать.
1 ответ
В конце концов я решил эту проблему, используя обходной путь. Коренная причина проблемы до сих пор неизвестна.
Обходным решением было установить файл.p12 в хранилище сертификатов и загружать его оттуда для каждого запроса, а не для чтения из файла.