2013-02-21 3 views
22

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

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: 

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

_certificate = new X509Certificate2(pfxFile, pfxPassword); 

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

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

Update
This article описывает ту же проблему, при которой раствор должен убедиться, что личность App Pool имеет LoadUserProfile Enabled.

+0

FWIW, HTTP: // StackOverflow .com/questions/9259581/our-application-crashes-how-to-find-the-of-the-crash Возможно, это будет шаг в правильном направлении. –

ответ

32

У меня была аналогичная проблема, и на Windows Server 2012, который потерпел катастрофу IIS, при использовании

new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.Exportable) 

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

new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable) 
+1

У меня была такая же проблема, и ваше решение также работало на меня. Мне жаль, что я не смог бы поддержать этот ответ не один раз. Большое спасибо! –

+2

@RodrigoSieiro Я пойду вперед и помогу вам справиться с этим. Я просто столкнулся с этим сам, когда вы используете сервисную службу Google Admin SDK. –

+0

@maxp Этот ответ объясняет, почему я люблю переполнение стека. – CameraSchoolDropout

Смежные вопросы