我遇到了一个错误,我正试图打开一个p12密钥库。这在开发中工作正常但是当我编译并移动到生产服务器时,会抛出“找不到对象”错误。
关于我所知道的全部内容是因为密钥库文件不存在。当我从服务器中删除存储时,错误消息将更改为“系统找不到指定的文件。”
任何想法可能是什么问题或如何调试?不幸的是,我无法单步执行,因为这是编译代码。
这是追踪:
System.Security.Cryptography.CryptographicException: Object was not found.
at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password)
at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)
答案 0 :(得分:8)
很快就解决了这个问题。这是决议:
答案 1 :(得分:1)
将IIS应用程序池设置为使用NetworkService身份而不是ApplicationPoolIdentity为我工作。