Вопрос по x509certificate, certificate, x509certificate2, .net – X509Certificate2 делает сбой IIS

24

При обновлении экземпляраX509Certificate2(string, string) мой процесс IIS просто падает. Нет .Net исключения, нет ничего, кроме этого в моем журнале событий

Faulting application name: w3wp.exe, version: 8.0.9200.16384, time stamp: 0x50108835
Faulting module name: ntdll.dll, version: 6.2.9200.16420, time stamp: 0x505ab405
Exception code: 0xc0000374
Fault offset: 0x00000000000ea485
Faulting process id: 0x102c
Faulting application start time: 0x01ce10301e250c4d
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 5e55321c-7c23-11e2-93f9-00155d8a0f17
Faulting package full name: 

Я очень ошеломлен и неНе знаю, с чего начать. При подключении отладчика к процессу яЯ могу прорваться к этой линии, но когда переступаешь через нее, все это терпит крах.

_certificate = new X509Certificate2(pfxFile, pfxPassword);

pfxFile - допустимый путь, если я его изменяю, я немедленно получаю правильное исключение .Net PathNotFound.

Сервер Windows 2012, работает под управлением IIS8 и .Net 4.5.

Обновить

Эта статья описывает ту же проблему, где решение состоит в том, чтобы убедиться, что удостоверение пула приложений имеетLoadUserProfile включен.

FWIW,stackoverflow.com/questions/9259581/... Может быть шагом в правильном направлении. lc.

Ваш Ответ

1   ответ
33

также на Windows Server 2012, который разбил IIS, при использовании

new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.Exportable)

Это было исправлено изменением конструктора на

new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable)
Это невероятно. Поскольку эта проблема приводила к сбою пула приложений, мне пришлось прибегнуть к жестко закодированным инструкциям трассировки в моем коде, чтобы даже выяснить, где произошла ошибка. Но напрашивается вопрос: почему проблема и как ее исправляет улучшенный конструктор? Вопрос 3, и это очень страшно для меня, почему это приводит к сбою пула приложений? Я неМне не нравится, насколько я чувствую себя уязвимым для использования X509Certificate2 вообще! kstubs
@RodrigoSieiro Я пойду дальше и помогу тебе в этом разобраться. Я сам столкнулся с этим при использовании учетной записи службы Google Admin SDK. Damon Drake
@maxp Этот ответ - то, почему я люблю переполнение стека. CameraSchoolDropout
Для VB.NET также будет работать следующее:new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.MachineKeySet Or X509KeyStorageFlags.PersistKeySet Or X509KeyStorageFlags.Exportable), VB использует ключевое словоOr представлять поразрядно| "ИЛИ ЖЕ" оператор. tresf

Похожие вопросы