example .net certificate x509certificate x509certificate2

.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)