.net - x509certificate2 c# example
X509Certificate2 hace que IIS se bloquee (1)
Al crear una instancia de X509Certificate2(string, string)
mi proceso de IIS simplemente se bloquea. Ninguna excepción .Net, nada, excepto esto en mi registro de eventos
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:
Estoy bastante aturdido y no sé por dónde empezar a buscar. Al adjuntar un depurador al proceso, puedo pasar a esta línea, pero al pasar por encima de él, todo se bloquea.
_certificate = new X509Certificate2(pfxFile, pfxPassword);
pfxFile es una ruta válida, si la cambio, inmediatamente obtengo una excepción correcta .Net PathNotFound.
El servidor es Windows 2012, ejecutando IIS8 y .Net 4.5.
Actualizar
Este artículo describe el mismo problema donde una solución es asegurarse de que la identidad del grupo de aplicaciones tenga habilitado el perfil de usuario de carga .
Tuve un problema similar, también en Windows Server 2012, que se estrelló IIS, al usar
new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.Exportable)
Esto fue arreglado cambiando el constructor a
new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable)