Dot-Net
X509Certificate2 使 IIS 崩潰
當更新我的 IIS 程序的實例時,它
X509Certificate2(string, string)只會崩潰。沒有 .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。
更新
本文描述了相同的問題,解決方案是確保 App Pool 身份啟用了LoadUserProfile 。
我有一個類似的問題,也在 Windows Server 2012 上,它在使用時崩潰了 IIS
new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.Exportable)這已通過將建構子更改為
new X509Certificate2(fileName, keyPassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable)