【发布时间】:2016-01-05 07:15:27
【问题描述】:
在我的 ASP.NET 应用程序中,我正在从证书存储加载证书:
var myCert = CertificateUtils.GetCertificate("thumbprint");
此证书包含一个密钥对,用于解密加密的应用程序设置。
证书安装在本地计算机下的个人证书存储中。当应用程序在 IIS Express 下运行时,它运行良好。但如果我在 full IIS Web 服务器 下执行它,myCert 实例缺少私钥。
myCert 对象的PrivateKey 字段包含异常:
'myCert.PrivateKey' threw an exception of type 'System.Security.Cryptography.CryptographicException'
我检查了myCert 对象的其他字段是否包含相同的值(例如,证书序列号、指纹或过期),所以它似乎在两个 IIS 下获得了相同的证书和 IIS Express。在完整的IIS的情况下,只有私钥丢失。
我唯一改变的是项目属性中的本地开发服务器(“使用 IIE Express”/“使用 IIS Web 服务器”)。在这两种情况下,它都在 Azure Emulator Express 中运行。
有人知道,为什么会这样?
【问题讨论】:
标签: c# asp.net iis iis-express